我是一名 PHP 开发人员,我是 Rails 的新手,但进展顺利,一切看起来都很简单。然而,直到今天早上我一直在使用 SQLite 并决定将我正在构建的东西转移到 MySQL。 rake db:create 完美运行,但是当我尝试 rake db:migrate 时出现以下错误:
rake aborted! Mysql::Error: Error on rename of './test_development/schema_migrations' to './test_development/#sql2-c7b-c' (errno: -1): CREATE UNIQUE INDEX
unique_schema_migrations
ONschema_migrations
(version
)
考虑到这可能是我的迁移脚本中的一个错误,我用最简单的表创建了一个干净的 Rails 项目并得到了同样的错误。所以,我重新安装了 MySQL 和 mysql gem,以确保它们都没有问题,但我仍然没有运气。这是我正在运行的版本:
- rails 2.3.4
- ruby 1.8.6
- MySQL 5.1.40
- MySQL gem 2.8.1
我感觉它可能与 InnoDB 相关,因为我之前在这个盒子上遇到过该引擎的问题。但是,如果有人能帮助我,我将非常感激,因为它阻止了我的进步。
谢谢,
基兰
更新: 根据 Phil 的要求,这里是以下结果:
和
最佳答案
你有 innodb_force_recovery选项设置为 6。这可能是从默认值 0 更改为修复较早的问题。在这种模式下,InnoDB 不允许除SELECT
、CREATE TABLE
和DROP TABLE
之外的任何操作。
尝试关闭 MySQL,然后编辑您的 my.cnf 文件。将 innodb_force_recovery 设置为 0(或删除该选项),然后重新启动 MySQL。
关于MySQL Rails 迁移错误 : "Error on rename of schema_migration (errno: -1)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1696342/