Плагин Ruby on Rails Foreigner не работает для SQL Server
Итак, теперь, когда я наконец-то настроил свои глупые вещи в ODBC, я взял файл schema.rb, который я выгрузил из базы данных Postgres, и сделал db:schema:load
на нем в проекте Rails, настроенном для SQL Server.
Что ж, он устанавливает все схемы в базе данных SQL Server, за исключением незначительной детализации: внешние ключи не создаются.
Команда rake не показывает никаких ошибок и говорит, что добавляет внешние ключи. Но они на самом деле не добавляются. Это последний бит из команды:
-- add_foreign_key("workhistoryform", "form", {:name=>"workhistoryform_form_rid_fkey", :column=>"form_rid", :primary_key=>"form_rid"})
-> 0.0002s
-- initialize_schema_migrations_table()
-> 0.0092s
-- assume_migrated_upto_version(0)
-> 0.0942s
[earlz@earlzarch avp_msql_migrations]$
Так в чем проблема? Плагин Foreigner не работает в SQL Server? Если бы этого не произошло, я бы ожидал увидеть ошибку или что-то...
2 ответа
Хорошо, я исправил это. Ну все равно взломали. Иностранец фактически не имеет встроенной поддержки SQL Server, но он достаточно близок к SQL_2003, чтобы он работал (за исключением удаления внешних ключей и обнаружения схемы).
Я написал об этом в своем блоге, который в основном сводился к добавлению в список адаптеров и созданию очень простого нового адаптера для SQL Server(используйте адаптер PostgreSQL в качестве шаблона). (модифицируя жемчужину иностранца)
Я исправил это правильно и отправил запрос на извлечение автору иностранца. Тем временем вы можете использовать версию из моего хранилища: https://github.com/cjheath/foreigner