ruby rails migrate未更新数据库

时间:2015-10-15 15:49:48

标签: ruby-on-rails ruby sqlite migration

我遇到了一个带有rails项目的东西,其中迁移似乎不会影响数据库/表。

Rails 4 / Ruby 2.0 / Sqllite /开发版

以前如果我设置了迁移,结果将反映在数据库和表中(使用sqlite数据浏览器)

现在,当我创建迁移时,它运行时的错误代码为0,但数据库中没有任何内容发生更改。 例如,如果我设置此迁移并运行Rake d:migrate,则不会向数据库添加任何内容。

class CreateTestModel < ActiveRecord::Migration
  def change

      def up
        create_table :products do |t|
          t.string :name
          t.text :description

          t.timestamps
        end
      end

      def down
        drop_table :products
      end


  end
end

rake migrate运行时错误代码为0

  

C:\ Ruby200 \ bin \ ruby​​.exe -e   $ stdout.sync =真; $ stderr.sync = TRUE;负载($ 0 = ARGV.shift)   C:/ Users / cmendla / RubymineProjects / Rl2 / bin / rake db:migrate   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已经初始化的常量Mime :: PDF   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:PDF的先前定义在这里   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已经初始化的常量Mime :: BMP   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:以前的BMP定义在这里   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已经初始化的常量Mime :: JPEG   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:JPEG的先前定义在这里   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已经初始化的常量Mime :: JPG   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:JPG的先前定义在这里   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:已经初始化的常量Mime :: GIF   C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.2.4/lib/action_dispatch/http/mime_type.rb:163:警告:以前的GIF定义在这里   == 20151015154920 CreateTestModel:迁移==================================   == 20151015154920 CreateTestModel:已迁移(0.0000s)=========================

     

处理完成,退出代码为0

我怀疑可能是sql数据库被锁定了。我确实重新启动了我的笔记本电脑也没用。

注意 - 我有很多混乱的迁移。我试图通过删除一些后来的迁移和未使用的数据表来解决问题。不确定是否是导致问题的原因。

1 个答案:

答案 0 :(得分:0)

更改为

class CreateTestModel < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string :name
      t.text :description
      t.timestamps
    end
  end
end

或者

class CreateTestModel < ActiveRecord::Migration
  def up
    create_table :products do |t|
      t.string :name
      t.text :description
      t.timestamps
    end
  end

  def down
    drop_table :products
  end

end

非常肯定你的问题是在变更中使用上下方法。

然后重新运行迁移。