В GitHub Actions есть возможность кэширования и восстановления определенных папок, которые обычно являются папками поставщиков, заполненными менеджерами пакетов. Мне нужно поместить результат выполнения миграций базы данных в папку кэша и восстановить его при следующем запуске, чтобы схема была там, и миграции не нужно было запускать с нуля. Проблема в том, что каталог данных, в котором MySQL хранит данные на диске, загадочен, и данные там нельзя увидеть с помощью команды ls
на шаге действия.
Несмотря на процесс кэширования папок поставщиков, похоже, никто не кэширует папку данных базы данных там, на GitHub. Есть ли какой-либо надежный способ кэширования и восстановления каталога данных MySQL или это не рекомендуется?
Вот что я пробовал, но не сработало:
- name: Change permission of mysql data dir
run: |
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
- name: Restore cached mysql data
id: cache-mysql-data
uses: actions/cache@v4
with:
path: /var/lib/mysql
key: mysql-data-dir
...
- name: Run Migration
run: php artisan migrate
- name: Save migration result to cache
uses: actions/cache/save@v4
with:
key: mysql-data-dir
path: /var/lib/mysql
- name: Test APIs with phpunit
run: php artisan test