在执行 rake db:migrate 时,出现了“重复列名 ’email’:ALTER TABLE `admin_users`”的提示
我想要在Rails的项目中添加activeadmin。
在运行 rake db:migrate 命令时出现错误。
bundle exec rake db:migrate
略
Migrating to AddDeviseToAdminUsers (20160714141618)
== 20160714141618 AddDeviseToAdminUsers: migrating ============================
-- change_table(:admin_users)
(6.7ms) ALTER TABLE `admin_users` ADD `email` varchar(255) DEFAULT '' NOT NULL
(0.3ms) SELECT RELEASE_LOCK('5237447081854824375')
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Duplicate column name 'email': ALTER TABLE `admin_users` ADD `email` varchar(255) DEFAULT '' NOT NULL
略
由于以前安装了activeadmin,所以admin_users表已经存在。
由于添加并执行了创建admin_users的迁移文件,所以出现了错误。
删除admin_users数据表
尽管参考页面建议进行回滚,但考虑到要新增一项新内容,我还是从MySQL中删除了它。
mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use pugiemonn_com;
MariaDB [pugiemonn_com]> drop table admin_users;
重新执行 rake db:migrate
这次成功了。