ruby-on-rails - 如何在rails中将数据库重置回初始状态?

标签 ruby-on-rails ruby migration schema auto-generate

我目前正在从事 ROR 项目。我已经为 Notes 生成了脚手架并为其运行迁移。但是现在我们的计划发生了一些变化,我想让应用程序恢复到初始状态。所以我运行railsscaffold destroynotes,所以我删除了生成的所有文件。但我仍然拥有定义了 Notes 表迁移的文件 schema.rb。如何在不手动更改此文件的情况下摆脱它(这被认为是不好的做法)?如果我生成 Notes 模型并运行迁移,该文件是否会更新并且一切都会好起来?或者可能会发生冲突? 我尝试运行 rake db:reset。好像还没有起作用。但在这个过程的最后我还是收到了这条消息。

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"thenotesapp", "pool"=>5, "username"=>"thenotesapp", "password"=>"thenotesapp"}
-- enable_extension("plpgsql")    -> 0.0367s
-- create_table("notes", {:force=>:cascade})    -> 0.0628s
-- initialize_schema_migrations_table()    -> 0.0276s
-- enable_extension("plpgsql")    -> 0.0251s
-- create_table("notes", {:force=>:cascade})    -> 0.0157s
-- initialize_schema_migrations_table()    -> 0.0012s

schema.rb 仍然像这个被破坏的脚手架一样

ActiveRecord::Schema.define(version: 20150114071920) do

  # These are extensions that must be enabled in order to support this database
  enable_extension "plpgsql"

  create_table "notes", force: :cascade do |t|
    t.string   "title"
    t.text     "text"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end

最佳答案

要删除数据库,您必须首先设置它,正如您对初始状态所说的那样 - 为此,请运行:

rake db:migrate VERSION=0

下一步是手动删除所有迁移文件(/db/migrate 目录)。

就是这样 - 你有干净的 schema.rb ,不包含表。

关于ruby-on-rails - 如何在rails中将数据库重置回初始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015048/

相关文章:

ruby-on-rails - 在 RHEL 6(x86_64 arch) 中使用 rvm 构建 32 位 ruby

ruby-on-rails - Redis Rails 身份验证如何工作?

javascript - 将 Angular 6 更新到 Angular 7 出现错误

python - 如何使用单个 python(.py) 脚本运行多个 python 脚本

ruby-on-rails - 使用 rails presenters - memoizable 在 3.1 中被弃用 - 使用 ||= 代替?

ruby-on-rails - Grails hasMany并属于与RoR的比较

ruby - 从字符串中删除 "http://"和 "https://"

ruby-on-rails - 无法使用 RVM 安装 Ruby

arrays - 将抓取的链接存储在数组中,然后调用一个函数来抓取这些内容

ruby-on-rails - rails 3 : Migrate data