2. MYSQL Database

  1. Wanneer een nieuwe project wordt ingericht: creëer een nieuwe MYSQL 8.0 server instantie in de SQL omgeving van Google Cloud

    1

    2

  2. Ga na creatie naar de instantie en noteer:

    • public ip address
    • connection name

    3 4

  3. Installeer de Cloud SQL Proxy in de macOS User folder om een remote connectie te kunnen bewerkstelligen:

    About the Cloud SQL Proxy | Cloud SQL for MySQL | Google Cloud

  4. Start een remote connectie via de proxy met het volgende commando vanuit de map waar de SQL proxy is geïnstalleerd. De CONNECTION_NAME betreft de genoteerde waarde uit stap 2.

    # format
    ./cloud_sql_proxy -instances=CONNECTION_NAME=tcp:3306
    
    #example
    ./cloud_sql_proxy -instances=de-maastricht-studie-api:europe-west3:apply-api=tcp:3306
  5. Er is nu een localhost connectie via poort 3306 opgezet. Er kan nu via bijv. TablePlus een koppeling gemaakt worden:

    5

ENV configuratie & Migratie

Laravel lijkt de localhost verbinding niet te kunnen gebruiken. Daarom kan gekozen worden om het globale ip-adres te gebruiken. Let er wel op dat het ip-adres van de gebruiker is toegekend aan de goedgekeurde locaties onder Mysql > Connections.

ENV

# GOOGLE GLOUD - INSTANCE
GOOGLE_CLOUD_PROJECT_ID=de-maastricht-studie-api
GOOGLE_CLOUD_STORAGE_BUCKET=staging.de-maastricht-studie-api.appspot.com

# GOOGLE GLOUD - STORAGE
APP_STORAGE=/tmp
VIEW_COMPILED_PATH=/tmp
FILESYSTEM_DRIVER=gcs
MEDIA_DISK=gcs

# GOOGLE GLOUD - MYSQL SETTINGS
DB_HOST=34.89.215.***
DB_DATABASE=apply_api_staging
DB_USERNAME=root
DB_PASSWORD=******
DB_CONNECTION=mysql
DB_PORT=3306

Migratie

composer update

php artisan config:clear
php artisan cache:clear
php artisan route:clear

composer dump-autoload

php artisan migrate --seed

###############
# DEPLOYMENT: #
###############

# basic deploy
gcloud app deploy

# staging
cloud app deploy app.staging.yaml -v staging --no-promote

# production
gcloud app deploy app.yaml -v production --promote