Rake db:迁移中止!使用MySQL2的Ghost开发数据库?

时间:2011-11-06 10:15:43

标签: mysql ruby-on-rails ruby-on-rails-3

好的,我刚刚在Windows 7 64位计算机上重新安装了MySQL Server 5.5(32位到64位)。然后我采取步骤使用mysql2 for rails:

gem 'mysql2', '0.2.6'
gem 'rails', '3.0.7'

第1步:

rake db:drop
Couldn't drop store_development : #<Mysql2::Error: Unknown database 'store_development'>

奇怪,因为在MySQL Workbench中我只看到了测试数据库。

第2步:

$ rake db:migrate
rake aborted!
Unknown database 'store_development'

不知道为什么我会收到此错误,所以我现在尝试重置数据库。

第3步:

rake db:reset
(in C:/store)
Couldn't drop store_development : #<Mysql2::Error: Unknown database 'store_development'>
store_test already exists
-- create_table("business_online_stores", {:force=>true})
   -> 0.1110s
-- create_table("business_retail_stores", {:force=>true})
   -> 0.0740s
-- create_table("businesses", {:force=>true})
   -> 0.0900s
-- create_table("products", {:force=>true})
   -> 0.0810s
-- create_table("user_prices", {:force=>true})
   -> 0.0720s
-- create_table("users", {:force=>true})
   -> 0.1810s
-- initialize_schema_migrations_table()
   -> 0.2800s
-- assume_migrated_upto_version(0, "db/migrate")
   -> 0.0320s
You have 6 pending migrations:
  20110909175650 DeviseCreateUsers
  20110929161120 CreateUserPrices
  20111004023516 CreateProducts
  20111007023521 CreateBusinesses
  20111009215120 CreateBusinessRetailStores
  20111009215419 CreateBusinessOnlineStores
Run "rake db:migrate" to update your database then try again.

是的,测试数据库已经存在,但这个Ghost开发数据库在哪里?它如何重置迁移,但告诉我再次迁移它们。好吧,生病就像现在说的那样:

第4步:

$ rake db:migrate
(in C:/store)
==  DeviseCreateUsers: migrating ==============================================
-- create_table(:users)
rake aborted!
An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'users' already exists: CREATE TABLE `users`

第5步:

$ rake db:migrate
rake aborted!
Unknown database 'store_development'

不可能,我进入我的MySQL Workbench并通过右键单击它们并执行必要的步骤来删除测试和开发数据库,​​因此即使我刷新它也没有任何存在,但是我得到关于数据库的错误存在。

如何解决此问题?

注意:0.2.7给我同样的问题。

注意:这些是我的前两个迁移文件,只是包含了任何想要查看它们的人:https://gist.github.com/1341682

2 个答案:

答案 0 :(得分:1)

只是一个想法,但Users已经在电子邮件列中有条目了吗?我想知道现有的重复条目是否会阻止添加验证:unique=>true

只是为了检查,你想做什么?:

add_column :users, :email, :string

而不是add_index?

答案 1 :(得分:0)

我知道解决这个问题的唯一方法就是重新创建我的整个应用程序。