我在这里为我的第一个Rails 4项目进行了简单的迁移。这是我项目中第一个在第一个模型上的迁移。我也尝试过:
rake db:forward STEP=1
但这没有做任何事,甚至没有错误。这是迁移:
class CreateOrganizations < ActiveRecord::Migration
def change
create_table :organizations do |t|
t.string :org_type
t.string :status
t.string :name
t.string :dba_name
t.string :url
t.text :description
t.timestamps
end
end
end
这是我在rake db:migrate
上遇到的错误。
undefined method `to_i' for []:Array/Users/me/.rvm/gems/ruby-2.0.0-p353@myapp/gems/activerecord-4.0.2/lib/active_record/schema_migration.rb:36:in `version'
该错误发生在ActiveRecord :: SchemaMigration.version方法中,该方法只调用super.to_i
。
它必须与schema_migrations
表有关。现在它是空白的。这几乎就像我错过了一个初始化步骤。
我收养得太早了,还是我错过了4岁的东西?另请注意,所有数据库都已创建并且确实存在。
答案 0 :(得分:1)
我发现了错误。 Postgresql允许版本化记录。至少,那就是我think
。无论如何,schema_migrations
表创建时只有一列version
,dimension
为1。
我以为我会试着通过在那里放一个零来欺骗Rails。好吧,Postgres不会让我加价值!它以类似于Rails的方式抱怨,说一些Array
必须以特定方式格式化。就在那时我注意到了维度。
我将dimension
上的schema_migrations.version
字段从1更改为0.然后我重新运行了迁移,它们运行正常。
<强> 更新 强>
这显然是Rails 4.0.2
中的一个错误。幸运的是,Rails 4.0.3
昨天发布了。请看这个this答案,了解如何克服这个问题。