feat: add support for Doctrine ORM (#74)

* feat: add support for Doctrine ORM

* feat: wait for DB and handle migrations if necessary

* feat: automatically use the MARIADB password

* fix cs

* feat: switch to postgres

* feat: switch to Postgres
This commit is contained in:
Kévin Dunglas 2020-11-24 22:10:43 +01:00 committed by GitHub
parent 24e5a85265
commit a6a1f7711e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View File

@ -15,6 +15,8 @@ services:
retries: 3
start_period: 30s
environment:
# Run "composer require symfony/orm-pack" to install and configure Doctrine ORM
DATABASE_URL: postgresql://${POSTGRES_USER:-symfony}:${POSTGRES_PASSWORD:-ChangeMe}@db:5432/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-13}
SYMFONY_VERSION:
caddy:

View File

@ -29,6 +29,27 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then
composer install --prefer-dist --no-progress --no-suggest --no-interaction
fi
if grep -q DATABASE_URL= .env; then
echo "Waiting for db to be ready..."
ATTEMPTS_LEFT_TO_REACH_DATABASE=60
until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || bin/console doctrine:query:sql "SELECT 1" > /dev/null 2>&1; do
sleep 1
ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE-1))
echo "Still waiting for db to be ready... Or maybe the db is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left"
done
if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then
echo "The db is not up or not reachable"
exit 1
else
echo "The db is now ready and reachable"
fi
if ls -A migrations/*.php > /dev/null 2>&1; then
bin/console doctrine:migrations:migrate --no-interaction
fi
fi
setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var
setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var
fi