केस - पहले से बनाए गए डॉकर वॉल्यूम का पुन:उपयोग करना
यदि आप sail down
के साथ सेल को रोकते हैं , डेटा वॉल्यूम बिना हटाए डॉकर होस्ट पर बना रहता है।
जब सेल बंद हो जाए, तो sail down -v
. का उपयोग करें मौजूदा डॉकर वॉल्यूम डेटा को हटाने के लिए।
पहले sail up
, DB_DATABASE=फोर्ज
जब आप पहली बार सेल शुरू करते हैं, तो डॉकर होस्ट पर एक वॉल्यूम बनाया जाता है।
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 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=परीक्षण
यदि आप उसी निर्देशिका नाम में दूसरा सेल शुरू करते हैं, तो पहले से बनाए गए डॉकर वॉल्यूम का पुन:उपयोग किया जाएगा।
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.