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

Ruby on rails rails新手,设置db,然后运行rake db:create/migrate,ruby-on-rails,database,migrate,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 :en

嗨,我现在正在学习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
在我运行“rakedb:create”之后,我得到了这个

user_auth_development already exists
user_auth_test already exists

运行
rakedb:create
一次且仅一次,然后首先运行它。然后每次添加/更改迁移时都运行
rake db:migrate
。您可能已经运行了此迁移,或者指向一个已经存在并且已经包含名为
users
的表的数据库。我的猜测是,您已经运行了一次迁移,在这种情况下,您可能可以继续。如果您想取消数据库并重新开始,请执行我们可以简单给出的操作,它将完成数据库创建和迁移所需的所有rake任务


rake db:setup

对于Rails 5和6,命令是:

rails setup

这将“创建数据库,加载模式,并使用种子数据初始化它”()。

我需要运行db:create和db:migrate吗?或者这是我编辑迁移文件后的实际设置吗?这意味着表已经存在。可能是以前的迁移已经创建了它。非常感谢!我不知道他们为什么不在指南中介绍这一点。它也没有解释如何正确地更新迁移。当我更新迁移文件并运行
rakedb:migrate
时,什么都没有发生。我知道我做错了什么,但我不知道我应该做什么。我必须给迁移起一个新名字吗?一般来说,你不应该修改迁移文件。如果你真的知道自己在做什么,你就会知道什么时候可以接受。如果你有任何疑问,不要修改;相反,创建一个新的迁移文件(
rails-generate-migration
)。这有一个小的例外:如果您想修改最近的迁移,可以这样做,然后运行
rake db:migrate:redo
,这将删除并重新运行上一次迁移。这并不总是可能的;这取决于最后一次迁移是可逆的(并非所有迁移都是可逆的)。如果您已经将其提交到共享存储库,则不应该这样做。它什么也不做的原因是Rails跟踪已运行的迁移。它创建一个名为
schema_migrations
的表,其中包含迁移时间戳列表(迁移名称的初始数字部分)。它不会重新运行一个已经在那里录制的。这就是它在运行
rake db:migrate
时知道要应用哪些迁移的方式。我们一直在寻找这一简单的信息。。。太琐碎了,似乎很难找到。它将根据模型生成数据库。
rails setup