Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Laravel सेल डिफ़ॉल्ट डेटाबेस का पुनर्निर्माण करता है

केस - पहले से बनाए गए डॉकर वॉल्यूम का पुन:उपयोग करना

यदि आप 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL परिणाम अनुक्रमणिका 13 पर पंक्ति 0 पर जाने में असमर्थ

  2. MySQL में तालिका टिप्पणी की लंबाई

  3. मैं एक mysql तालिका के विभिन्न स्तंभों में मानों की एक सरणी कैसे सम्मिलित करूं?

  4. संग्रहीत कार्यविधियों के साथ स्प्रिंग बूट MySQL डेटाबेस आरंभीकरण त्रुटि

  5. PHP MySQL ट्रिगर - ट्रिगर करने के लिए चर कैसे पास करें?