diff --git a/Makefile b/Makefile index 9d296c4f..bc272aa8 100644 --- a/Makefile +++ b/Makefile @@ -119,12 +119,24 @@ sync_test_db: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql pg_dump -Fc mam_prod > dump-prod.sql - pg_restore -c -d mam_test dump-prod.sql + pg_restore -c --if-exists -d mam_test dump-prod.sql + rm dump-prod.sql + @echo Done. + +# Aggresive variant: destroy original mam_test db with 'DROP OWNED BY "mam-web";' +sync_test_db_aggressive: + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql + pg_dump -Fc mam_prod > dump-prod.sql + @# I am not sure which shell is used, so I am calling bash to make sure + bash -c "psql mam_test <<< 'DROP OWNED BY \"mam-web\";'" + pg_restore -c --if-exists -d mam_test dump-prod.sql rm dump-prod.sql @echo Done. # Sync test with production -sync_test: sync_test_media sync_test_db +# HACK ALERT: using aggressive variant, due to the schemas being too different. +sync_test: sync_test_media sync_test_db_aggressive # Sync media directory with atrey. Useful for local development with production database diff --git a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py index f9a8b5eb..f819f047 100644 --- a/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py +++ b/seminar/migrations/0001_squashed_0067_auto_20190814_0805.py @@ -1518,7 +1518,7 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(primary_key=True, serialize=False)), ('body', models.DecimalField(decimal_places=1, max_digits=8, verbose_name='body')), - ('cislo_body', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body')), + ('cislo_body', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body', null=True)), ('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='seminar.Problem', verbose_name='problém')), ('reseni', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='seminar.Reseni', verbose_name='řešení')), ], @@ -2025,7 +2025,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='hodnoceni', name='cislo_body', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body'), + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body', null=True), ), migrations.AlterField( model_name='hodnoceni', diff --git a/seminar/migrations/0049_auto_20190430_2354.py b/seminar/migrations/0049_auto_20190430_2354.py index de2b1b0d..985b3531 100644 --- a/seminar/migrations/0049_auto_20190430_2354.py +++ b/seminar/migrations/0049_auto_20190430_2354.py @@ -453,7 +453,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='hodnoceni', name='cislo_body', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body', null=True), ), migrations.AddField( model_name='hodnoceni', diff --git a/seminar/migrations/0064_auto_20190610_2358.py b/seminar/migrations/0064_auto_20190610_2358.py index 344b132c..b72a08a0 100644 --- a/seminar/migrations/0064_auto_20190610_2358.py +++ b/seminar/migrations/0064_auto_20190610_2358.py @@ -27,7 +27,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='hodnoceni', name='cislo_body', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body'), + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='hodnoceni', to='seminar.Cislo', verbose_name='číslo pro body', null=True), ), migrations.AlterField( model_name='hodnoceni',