我遇到了一个带有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数据库被锁定了。我确实重新启动了我的笔记本电脑也没用。
注意 - 我有很多混乱的迁移。我试图通过删除一些后来的迁移和未使用的数据表来解决问题。不确定是否是导致问题的原因。
答案 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
非常肯定你的问题是在变更中使用上下方法。
然后重新运行迁移。