Я новичок в рубинах на рельсах и с трудом.рельсы «rake db: migrate» частично выполнены и нужно переделать с нуля
Я попытался запустить «rake db: migrate», но он был прерван, потому что была опечатка. Я набрал «пользователей» вместо «пользователей». Поэтому я исправил файл rb в каталоге db/migrate и попытался запустить его снова, только чтобы найти миграцию уже частично, и я не могу повторить ее снова. Похоже, что это обычная ошибка новичка, подобного мне, и преподаватель представил два решения для этого: сначала DROP таблицу в SQL или второй COMMENT OUT уже запущенную часть и запустите оставшуюся часть.
Но прежде чем я нашел бесперебойный стреляя совет, я думал, что я могу просто использовать другое имя файла (вздыхать) и я изменил «пользователей» на «admin_user» и «admin_user» до «admin_user2». я не работал, и я упал на стол и сделал
$ рельсов генерировать миграции AlterUsers и $ рейки дб: мигрировать
Но прерван снова, потому что он не может найти этот файл: users.frm. (я не знаю, где файлы .frm ..)
Большое спасибо.
--------------------------- Сообщение об ошибке ----------------- -----------------------
$ rake db:migrate
== AlterUsers: migrating =====================================================
-- rename_table("users", "admin_users")
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Can't find file: './simple_cms_development/users.frm' (errno: 2 - No such file or directory): RENAME TABLE `users` TO `admin_users`/Users/gymmilo/Sites/simple_cms/db/migrate/20130927112013_alter_users.rb:3:in `change'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
-------------------- ------- файл миграции ----------------------------------------
class AlterUsers < ActiveRecord::Migration
def change
rename_table("users", "admin_users")
add_column("admin_users", "username", :string, :limit => 25)
change_column("admin_users", "email", :string, :limit => 100)
rename_column("admin_users", "password", "hashed_password")
add_column("admin_users", "salt", :string, :limit => 40)
puts "*** About to add an index ***"
add_index("admin_users", "username")
end
end
------------------------------ (Я уже однажды уронил стол, и так получилось! Спасибо за помощь. --------
mysql> SHOW TABLES;
+----------------------------------+
| Tables_in_simple_cms_development |
+----------------------------------+
| admin_users1 |
| schema_migrations |
+----------------------------------+
2 rows in set (0.00 sec)
mysql> DROP TABLE admin_users1;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
$ rake db:migrate
== AlterUsers: migrating =====================================================
-- rename_table("users", "admin_users")
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Can't find file: './simple_cms_development/users.frm' (errno: 2 - No such file or directory): RENAME TABLE `users` TO `admin_users`/Users/gymmilo/Sites/simple_cms/db/migrate/20130927112013_alter_users.rb:3:in `change'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
$ mysql -u simple_cms -p simple_cms_development
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.6.13 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SHOW TABLES;
+----------------------------------+
| Tables_in_simple_cms_development |
+----------------------------------+
| schema_migrations |
+----------------------------------+
1 row in set (0.00 sec)
mysql> exit
Bye
$ pwd
/Users/gymmilo/Sites/simple_cms
$ rake db:migrate
== AlterUsers: migrating =====================================================
-- rename_table("users", "admin_users")
rake aborted!
An error has occurred, all later migrations canceled:
Mysql2::Error: Can't find file: './simple_cms_development/users.frm' (errno: 2 - No such file or directory): RENAME TABLE `users` TO `admin_users`/Users/gymmilo/Sites/simple_cms/db/migrate/20130927112013_alter_users.rb:3:in `change'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
MySQL представляет каждую таблицу в базе данных с несколькими файлами, одна из которых имеет расширение FRM. Ошибка 2 о users.frm указывает на отсутствие таблицы с именем «пользователи» в ссылочной базе данных. Возможно, вы захотите либо сбросить, либо воссоздать свою базу данных, либо использовать командную строку MySQL для подключения к вашей базе данных и посмотреть, какие таблицы у вас на самом деле. –