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

Har*_*ina 26 database ruby-on-rails migrate

您好我正在学习rails,并按照教程.我在创建应用程序之后编辑迁移文件,然后运行rake db:migrate,然后运行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
Run Code Online (Sandbox Code Playgroud)

然后,当我运行'rake db:migrate'时,我收到了一个错误

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users` ...
Run Code Online (Sandbox Code Playgroud)

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

user_auth_development already exists
user_auth_test already exists
Run Code Online (Sandbox Code Playgroud)

Jim*_*art 51

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


Kan*_*n S 18

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

rake db:setup