Say*_*nee 2 migration git ruby-on-rails-3
我可以采取哪些步骤从之前完美运行的Git结帐树中彻底重新启动所有旧文件(删除新文件),正确迁移(删除新表/迁移)等等?
这是情况.我正在学习Rails,有几次我搞砸了,因此,我做了git checkout -f(没有提交任何东西)从完美的代码开始干净利落.但是,我发现新创建的文件仍然存在,我不得不手动删除它们,并且rake db:migrate错误地说表已经存在.
以下是我的一些错误:
Sayanee:depot sweska$ rake db:migrate
(in /Applications/XAMPP/xamppfiles/htdocs/rails_projects/TUTORIALS/depot)
== CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "hashed_password" varchar(255), "salt" varchar(255), "created_at" datetime, "updated_at" datetime)
(See full trace by running task with --trace)
Sayanee:depot sweska$ rake db:reset
(in /Applications/XAMPP/xamppfiles/htdocs/rails_projects/TUTORIALS/depot)
db/test.sqlite3 already exists
db/test.sqlite3 already exists
db/development.sqlite3 already exists
-- create_table("carts", {:force=>true})
-> 0.0033s
-- create_table("line_items", {:force=>true})
-> 0.0172s
-- create_table("orders", {:force=>true})
-> 0.0032s
-- create_table("products", {:force=>true})
-> 0.0030s
-- create_table("users", {:force=>true})
-> 0.0049s
-- initialize_schema_migrations_table()
-> 0.0095s
-- assume_migrated_upto_version(20110522103119, "db/migrate")
-> 0.0153s
You have 1 pending migrations:
20110523004950 CreateUsers
Run "rake db:migrate" to update your database then try again.
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
rake db:rollback STEP=3?或者是否有任何命令git status可以列出我以前的所有迁移及其名称?非常感谢!有了答案,我会列出这里的步骤!
从上一个git checkout创建一个干净的开始的步骤:
您可以随时将提交重置为上一次.
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
记住重置硬重置索引和工作树,因此任何跟踪的文件都将被丢弃.如果您不想丢弃任何内容,则可以执行--soft reset.
有关更多信息,git重置文档有一些写得很好的例子:
http://git-scm.com/docs/git-reset
由于rails应用程序会创建sqlite数据库文件,因此将当前树重置为先前状态不会删除未跟踪的文件.要删除那些未跟踪的文件(您的sqlite数据库),您可以删除该sqlite数据库文件.如果要清理整个树,可以运行:
git clean -f
Run Code Online (Sandbox Code Playgroud)
通过重置和清理您的git工作树,它将返回到您最初在该特定提交时检出的状态.
希望有所帮助!