【发布时间】:2013-06-01 13:38:22
【问题描述】:
我正在使用 tinytds 连接到 ms-sqlserver 数据库。我注意到只要我的数据库中没有表,db:migrate 就可以工作。一旦我尝试使用db:migrate 对对象进行更改并复制到数据库,我就会收到以下错误。
TinyTds::Error: There is already an object named 'apples' in the database.: CREATE TABLE [apples] ([id] int NOT NULL IDENTITY(1,1) PRIMARY KEY, [color] nvarchar(50), [price] nvarchar(50), [created_at] datetime NOT NULL, [updated_at] datetime NOT NULL) /var/lib/gems/1.9.1/gems/activerecord-sqlserver-adapter-3.2.10/lib/active_record/connection_adapters/sqlserver/database_statements.rb:360:in `do'
我不确定问题是我的数据库配置不正确还是我的 rails 项目是。如果有人可以提供任何指导,我将不胜感激!谢谢!
【问题讨论】:
-
database.yml中的用户是否有DROP权限?
-
我不确定在哪里可以检查用户是否具有以下成员角色,
'db_accessadmin','db_backupoperator','db_datareader','db_datawriter','db_ddladmin','db_owner','db_securityadmin' -
您是否检查了您的 schema_migrations 表以查看迁移编号是否正确更新?
-
@Vimsha,前面的表格中有六行。不知道如何检查它们是否正确。
-
据我所知,它应该只有一个数字。上次运行的迁移。这就是它决定哪些迁移已经运行的方式。
标签: ruby-on-rails sql-server-2012 dbmigrate tiny-tds