0

我正在研究 Rails 3 项目,我最初使用 MySQL 作为 RDBMS。但后来我的客户要求我们应该使用 MSSQL。花了半天后,我可以使用这里的文章连接 MSSQL 服务器:http: //oldwiki.rubyonrails.org/rails/pages/HowtoConnectToMicrosoftSQLServerFromRailsOnLinux

但经过所有努力,当我尝试迁移时,出现以下错误:

这是 rake 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:schema:load 的错误

-- create_table("banners", {:force=>true})
rake aborted!
37000 (2715) [unixODBC][FreeTDS][SQL Server]Column, parameter, or variable #1: Cannot find data type primary_key.

我用谷歌搜索了这个错误,但找不到任何帮助,它似乎不是一个流行的组合。

我目前以两种方式看待这个问题:

  1. 尝试通过使 rails 以 MSSQL 友好格式输出 SQL 来解决手头的问题。如果第一个失败,那么

  2. 作为一种解决方法,将原始 mysql 转储转换为 MSSQL 格式。

4

1 回答 1

0

由于我没有得到答案,因此我采用了接近上述 #2 的解决方案。我通过 MySQL DSN 连接使用 MSSQL 导入和导出向导,一一创建了数据库表。我仍在寻找一种方法来做到这一点,这是纯 Rails 方式,因为每次更改任何模型时,我都必须手动更新 MSSQL 数据库。

于 2011-08-20T02:46:22.157 回答