Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel Sail xây dựng lại cơ sở dữ liệu mặc định

Trường hợp - Sử dụng lại một tập Docker đã được tạo

Nếu bạn dừng Sail với sail down , khối lượng dữ liệu vẫn còn trên máy chủ Docker mà không bị xóa.

Khi Sail bị dừng, hãy sử dụng sail down -v để xóa dữ liệu khối lượng Docker hiện có.

Đầu tiên sail up , DB_DATABASE =giả mạo

Khi bạn lần đầu tiên bắt đầu Sail, một khối lượng được tạo trên máy chủ 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              |

Tuy nhiên, khi tôi thoát Sail, vùng chứa Docker bị xóa nhưng ổ đĩa không bị xóa.

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 =test

Nếu bạn bắt đầu một Sail thứ hai trong cùng một tên thư mục, thì tập Docker đã được tạo sẽ được sử dụng lại.

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

Vì dữ liệu tồn tại trong test_sailmysql , là ổ đĩa được tạo trong lần chạy đầu tiên, tác vụ tạo cơ sở dữ liệu mới không được thực thi.

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')

Bắt đầu sau khi xóa tập hiện có

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 tùy chọn

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. Hiểu các bế tắc trong MySQL &PostgreSQL

  2. Cách xử lý Máy chủ MySQL đang chạy với tùy chọn --secure-file-priv nên nó không thể thực thi câu lệnh này trên máy Mac

  3. Viết phiên bắt đầu trên 1 trang hay tất cả các trang?

  4. Lập trình tự:Sử dụng nhiều cơ sở dữ liệu

  5. Tìm và thay thế một phần văn bản trong một trường bằng MySQL