gpt4 book ai didi

Mysql2::错误:表 "Admin_Users"已存在

转载 作者:行者123 更新时间:2023-11-29 22:02:07 27 4
gpt4 key购买 nike

--------------------------编辑#1------------ --------------

我找到了解决问题的方法:

问题:

我在迁移中打错了“admin_user”,而它应该是“admin_users”,然后运行了 rake db:migrate。在完成迁移之前给出错误。

解决方案:

rake db:drop #drops the database
rake db:create #re-creates the database

一个问题:

如何在不删除整个数据库并重新创建它的情况下修复迁移拼写错误?显然我不想在实际项目中删除数据。

编辑 #2回答我的问题^:

您可以进入代码并注释已迁移的代码,这将在您运行时完成剩余的迁移:

rake db:migrate

编辑 #2 结束

--------------------------编辑 #1 结束-------------- -------------

我在使用 Ruby On Rails 4 时遇到了 MySQL 新手问题。

class AlterUsers < ActiveRecord::Migration
def up
rename_table("users", "admin_users")
add_column("admin_users", "username", :string, :limit => 25, :after => "email")
change_column("admin_users", "email", :string, :limit => 100)
rename_column("admin_users", "password", "hashed_password")
puts "*** Adding an index is next ***"
add_index("admin_users", "username")
end

def down
remove_index("admin_users", "username")
rename_column("admin_users", "hashed_password", "password")
change_column("admin_users", "email", :string, :default => "", :null => false)
remove_column("admin_users", "username")
rename_table("admin_users", "users")
end
end

然后我跑了:

rake db:migrate

然后迁移“创建用户”,但在点击“更改用户迁移”时出现错误:

*** Adding an index is next ***
-- add_index("admin_user", "username")
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'simple_cms_development.admin_user' doesn't exist: CREATE INDEX `index_admin_user_on_username` ON `admin_user` (`username`)

然后我尝试了:

rake db:migrate:status

结果是:

up     20150911203937  Do nothing yet
up 20150911204213 Create users
down 20150911212536 Alter users

所以我想如果我只是通过使用恢复到所有 DOWN 状态:

rake db:migrate VERSION=0

但随后又给了我另一个错误:

Mysql2::Error: Unknown table 'users': DROP TABLE `users`
/db/migrate/20150911204213_create_users.rb:16:in `down'

显然,这只是一般的数据库和 RoR 项目的练习,但是我如何才能以最佳方式修复此错误,这样我就不会删除任何重要的内容(在未来的 SQL 项目中)。

在此处发帖之前,我已经阅读了这些主题:

http://stackoverflow.com/questions/24988889/mysql2error-table-conversations-already-exists
http://stackoverflow.com/questions/27876009/ruby-on-rails-mysql2error-table-pages-already-exists-create-table-pages

感谢您的回答/建议!

最佳答案

您的问题没有意义,您的错误(以及明显的 db:migrate 输出)显示了一个问题,因为没有 "admin_user" (单数)表,并且但您的迁移显示 add_index("admin_users"... (复数)。最重要的是,您的问题主题中的错误从未在您的帖子中提及。绝对看起来您已经明白了在一片困惑中,我的建议是放弃数据库并从头开始。

关于Mysql2::错误:表 "Admin_Users"已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32532897/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com