Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel Sail възстановява базата данни по подразбиране

Случай – Повторно използване на вече създаден том Docker

Ако спрете Sail с sail down , обемът на данните остава на хоста на Docker, без да бъде изтрит.

Когато Sail е спрян, използвайте sail down -v за да изтриете съществуващите данни за обема на Docker.

Първо sail up , DB_DATABASE=изправяне

Когато стартирате Sail за първи път, на хоста на Docker се създава том.

grep DB_DATABASE .env
DB_DATABASE=forge

docker volume ls
DRIVER    VOLUME NAME

sail up -d
Creating network "test_sail" with driver "bridge"
Creating volume "test_sailmysql" with local driver
Creating volume "test_sailredis" with local driver
Creating test_mailhog_1 ... done
Creating test_mysql_1   ... done
Creating test_redis_1   ... done
Creating test_laravel.test_1 ... done

docker volume ls
DRIVER    VOLUME NAME
local     test_sailmysql
local     test_sailredis

sail mysql
mysql> show databases;
| forge              |

Въпреки това, когато изляза от Sail, контейнерът Docker се изтрива, но обемът не се изтрива.

sail down
Stopping test_laravel.test_1 ... done
Stopping test_mailhog_1      ... done
Stopping test_redis_1        ... done
Stopping test_mysql_1        ... done
Removing test_laravel.test_1 ... done
Removing test_mailhog_1      ... done
Removing test_redis_1        ... done
Removing test_mysql_1        ... done
Removing network test_sail

docker volume ls
DRIVER    VOLUME NAME
local     test_sailmysql
local     test_sailredis

Второ sail up , DB_DATABASE=тест

Ако стартирате втори Sail в същото име на директория, вече създаденият том на Docker ще бъде използван повторно.

grep DB_DATABASE .env
DB_DATABASE=test

sail up -d
Creating network "test_sail" with driver "bridge"
Creating test_mysql_1   ... done
Creating test_redis_1   ... done
Creating test_mailhog_1 ... done
Creating test_laravel.test_1 ... done

docker volume ls
DRIVER    VOLUME NAME
local     test_sailmysql
local     test_sailredis

Тъй като данните съществуват в test_sailmysql , което е обемът, създаден при първото изпълнение, не се изпълнява задача за създаване на нова база данни.

sail mysql
  ERROR 1049 (42000): Unknown database 'test'
sail artisan migrate
  Illuminate\Database\QueryException
  SQLSTATE[HY000] [1049] Unknown database 'test' (SQL: select * from information_schema.tables where table_schema = test and table_name = migrations and table_type = 'BASE TABLE')

Започнете след изтриване на съществуващия том

sail down -v
...
Removing volume test_sailmysql
Removing volume test_sailredis
sail up -d
...
Creating volume "test_sailmysql" with local driver
Creating volume "test_sailredis" with local driver
sail mysql
mysql> show databases;
| test               |
sail artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (214.30ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (99.56ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (151.61ms)

sail down опции

sail down -h

    -v, --volumes           Remove named volumes declared in the `volumes`
                            section of the Compose file and anonymous volumes
                            attached to containers.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вложени класове - CustomRowMapper !! Вече не е проблем!! - Част 2

  2. Искам да добавя 30 дни към реда за дата на mysql

  3. MySQL ОТПУСКА УНИКАЛНО ОГРАНИЧЕНИЕ

  4. Как да търсите няколко колони в MySQL?

  5. Как да импортирате данни от текстов файл в mysql база данни