I suddenly met a strange error. When i try to run rake spec
i recieve:
You have 2 pending migrations:
20130405105004 CreateReports
20130405113839 AddDocumentToReports
I don't know the reason for that (i run migrations in the past so i have data in the database and schema.rb).
Here is rake spec --trace
:
** Invoke spec (first_time)
** Invoke test:prepare (first_time)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
You have 2 pending migrations:
20130405105004 CreateReports
20130405113839 AddDocumentToReports
Run "rake db:migrate" to update your database then try again.
Here is rake db:migrate:status
:
...
up 20121210112419 Create simple captcha data
up 20130214110545 Add weeknum to alerts
down 20130405105004 Create reports
down 20130405113839 Add document to reports
up 20121018133601 *** NO FILE ***
up 20121018163051 *** NO FILE ***
up 20121024124111 *** NO FILE ***
And here is rake db:migrate
== CreateReports: migrating ==================================================
-- create_table(:reports)
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'reports' already exists: CREATE TABLE `reports` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `user_id` int(11), `ready_status` tinyint(1) DEFAULT 0, `created_at` datetime, `updated_at` datetime) ENGINE=InnoDB
Tasks: TOP => db:migrate
How can i fix that?
If this is on a dev environment and you have no important data in the db, then run
bundle exec rake db:migrate:reset
This will rebuild the schema, but at the cost of nuking all your data.
通过使用Recks答案和代码重建模式,我能够完成所有工作
bundle exec rake db:migrate:reset
在我的postgres数据库中创建了一个schema_migrations
表,您可以通过删除该表来重置迁移状态( drop table schema_migrations;
)。
I had a similar problem with * No File * . I did a rake db:migrate:status and found that rake was looking for some old migrations that I had saved in another folder under the migrate folder. So, I deleted the old migrations and schema.rb. Then I did rake db:drop, rake db:create, and rake db:migrate. That solved the problem.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.