Я работаю над проектом Rails 3, где я изначально использовал MySQL как RDBMS. Но позже мой клиент попросил нас использовать MSSQL. Потратив полдня, я могу подключиться к серверу MSSQL, используя статью здесь: http://oldwiki.rubyonrails.org/rails/pages/HowtoConnectToMicrosoftSQLServerFromRailsOnLinux
Но после всех попыток, когда я попытался мигрировать, я получил следующую ошибку:
Вот ошибка с граблями db: migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, all later migrations canceled:
37000 (2715) [unixODBC][FreeTDS][SQL Server]Column, parameter, or variable #1: Cannot find data type primary_key.
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
Когда я повторно запускаю ту же команду, я получаю сообщение об ошибке:
rake aborted!
S0001 (2714) [unixODBC][FreeTDS][SQL Server]There is already an object named 'schema_migrations' in the database.
- , что означает, что по крайней мере соединение работает!
Ниже приведена ошибка с rake db: схема: нагрузка
-- create_table("banners", {:force=>true})
rake aborted!
37000 (2715) [unixODBC][FreeTDS][SQL Server]Column, parameter, or variable #1: Cannot find data type primary_key.
Я погуглил на ошибку, но не смог найти никакой помощи, кажется, это не популярная комбинация.
В настоящее время я смотрю на эту проблему двумя способами:
попробуйте решить проблему вручную, заставив рельсы выводить SQL в формате MSSQL. А если первый не получится, то
в качестве обходного пути преобразуйте необработанный дамп mysql в формат MSSQL.