【问题标题】:Rails: db:migrate wont make changes to database table (tinytds)Rails: db:migrate 不会更改数据库表 (tinytds)
【发布时间】: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


【解决方案1】:

这真的不是一个修复,只是想跟进我所采用的解决方案。我最终备份了我的数据并删除了表并重新运行rake db:migrate,然后通过 sql server 重新插入了数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2016-04-19
    • 2014-06-20
    • 2019-09-19
    • 1970-01-01
    相关资源
    最近更新 更多