'rake db:drop'不起作用

时间:2011-12-02 08:48:26

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

我正在使用 Rails v2.3.2 MySQL v5.1 mysql2 gem。

我在以下方法中运行以下rake任务:

def db_operation
    Rake::Task['db:drop'].invoke #this one does not work
    Rake::Task['db:create'].invoke
    Rake::Task['db:migrate'].invoke
    ...
 end

Rake::Task['db:drop'].invoke不会丢弃我的数据库**,并且没有错误消息让我无法找到原因。

然后:   我转到 MySQL命令行来执行“DROP DATABASE my_db;”,它引发了以下错误消息:

ERROR 1010 (HY000): Error dropping database (can't rmdir './my_db/', errno: 17)

之后:   我再次运行代码,数据库出人意料地被删除......

发生了什么事?为什么我的rake db:drop不会丢弃数据库,但是在我在MySQL命令行上运行drop命令并再次运行rake db:drop后,它会被丢弃? (当我在MySQL命令行上运行时出错)

P.S。

rake db:createrake db:migrate正在毫无问题地工作。

1 个答案:

答案 0 :(得分:1)

请参阅此LINK

你可能在/ var / lib / mysql / my_db /中有mysql没有创建的文件。 尝试列出这些文件,看看有什么。尝试将任何内容移动到临时目录(如果您确定不需要它们,则删除),然后再试一次。