Error during automatic deployment on Capistrano during team development on Rails
What to do when "Mysql2 :: Error: Table'~' already exists: CREATE TABLE~
" appears.
Translated literally, it's impossible because there is already a table.
The bottom line is database scrap and build. You were to become Shiva, the god of imagination and destruction.
I will do it seriously. .. .. First, SSH in from the terminal and connect to AWS. After logging in, connect to mysql and take a look at the contents.
[ec2-user@]$ mysql -u root -p
#mysql password
Enter password:
Once in mysql, take a look at the production database.
mysql> show databases;
+----------------------------------+
| Database |
+----------------------------------+
| information_schema |
| sample_production |
| mysql |
| performance_schema |
+----------------------------------+
mysql> show tables from sample_production;
+--------------------------------------------+
| Tables_in_sample_production |
+--------------------------------------------+
| ar_internal_metadata |
| schema_migrations |
| user_addresses |
| users |
+--------------------------------------------+
Delete this with the drop command.
mysql> drop database sample_production;
mysql> exit
Move the directory and create the database.
$ cd /var/www/app name/current
[ec2-user@ current]$ rails db:create RAILS_ENV=production;
#If necessary, here too
[ec2-user@ current]$ rails db:migrate RAILS_ENV=production;
later, bundle exec cap production deploy And it's done.
Thank you very much! !!
Recommended Posts