新手到rails,设置db然后运行rake db:create / migrate

时间:2013-05-26 10:09:06

标签: ruby-on-rails database migrate

你好我正在学习rails,并按照教程。在我创建应用程序之后编辑迁移文件,然后运行rake db:migrate,然后rake db:create。

我已将迁移文件编辑为:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :username
      t.string :email
      t.string :encrypted_password
      t.string :salt
      t.timestamps
    end
  end
end

然后当我运行'rake db:migrate'时出现错误

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` ...

在我应该运行'rake db:create'之后,我就得到了这个

user_auth_development already exists
user_auth_test already exists

3 个答案:

答案 0 :(得分:50)

您只运行一次rake db:create,然后再运行它。然后,每次添加/更改迁移时都会运行rake db:migrate。您已经运行了此迁移,或者您指向的是已存在且已包含名为users的表的数据库。我的猜测是你已经进行了一次迁移,在这种情况下你很可能会去。如果您想要修改数据库并重新开始,请执行rake db:drop db:create db:migrate

答案 1 :(得分:17)

我们可以简单地说,它将完成数据库创建和迁移所需的所有rake任务

<强> rake db:setup

答案 2 :(得分:1)

对于 Rails 5 和 6,命令是:

rails setup

这将“创建数据库,加载架构,并使用种子数据对其进行初始化”(docs)。