我目前正在从事 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/