Ruby on rails 在rails 3中运行rake db:migrate时获取构建任务错误
运行命令时出现以下错误Ruby on rails 在rails 3中运行rake db:migrate时获取构建任务错误,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Ruby On Rails 3.2,运行命令时出现以下错误 rake db:migrate VERSION=201504******. 错误: 雷克流产了! 不知道如何构建任务“20150419131135” 实际上我已经有了一个迁移文件。现在我正在连接到一个新的数据库。这里我想在那个数据库中创建一个表。请检查我下面的文件 20150419131135_create_users.rb: 迁移后,我出现上述错误。请帮助我解决此错误。self.down和self.up方法应位于一个CreateUsers类中: 不应该只是上下颠倒吗m
rake db:migrate VERSION=201504******.
错误:
雷克流产了!
不知道如何构建任务“20150419131135”
实际上我已经有了一个迁移文件。现在我正在连接到一个新的数据库。这里我想在那个数据库中创建一个表。请检查我下面的文件
20150419131135_create_users.rb:
迁移后,我出现上述错误。请帮助我解决此错误。self.down和self.up方法应位于一个CreateUsers类中:
不应该只是上下颠倒吗methods@jphager2:在文档中,Rails 2.3中的迁移是用self编写的,因为3.2中没有.Ok。这个问题指定了Rails 3,所以也许这就是问题所在?@jphager2:不,问题在于拆分方法,正如我在回答中所说的。self.up似乎是up的旧版本,但它仍能按预期工作。所以它成功了。不确定为什么将方法拆分为两个类定义会有问题。我真的希望ActiveRecord没有对ruby文件做任何额外的解析…如果只做rake db:migrate而不使用版本呢
class CreateUsers < ActiveRecord::Migration
def self.up
if !table_exists? :users
create_table :users do |t|
t.string :contact_name
t.string :login_id
t.string :password_hash
t.string :password_salt
t.string :phone
t.string :address
t.timestamps
end
end
end
end
class CreateUsers < ActiveRecord::Migration
def self.down
drop_table :users if !table_exists?(:users)
end
end
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :contact_name
t.string :login_id
t.string :password_hash
t.string :password_salt
t.string :phone
t.string :address
t.timestamps
end unless table_exists? :users
end
end
def self.down
drop_table :users if table_exists? :users
end
end