Add a sanity check for comm migration

This commit is contained in:
Griatch 2017-07-09 11:12:20 +02:00
parent f45bd4921d
commit c1326eaf23

View file

@ -2,7 +2,17 @@
# Generated by Django 1.11.2 on 2017-07-05 17:26 # Generated by Django 1.11.2 on 2017-07-05 17:26
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import migrations, models from django.db import migrations, models, connection
from django.db import OperationalError
def _table_exists(db_cursor, tablename):
"Returns bool if table exists or not"
sql_check_exists = "SELECT * from %s;" % tablename
try:
db_cursor.execute(sql_check_exists)
return True
except OperationalError:
return False
class Migration(migrations.Migration): class Migration(migrations.Migration):
@ -12,40 +22,47 @@ class Migration(migrations.Migration):
('comms', '0012_merge_20170617_2017'), ('comms', '0012_merge_20170617_2017'),
] ]
operations = [ db_cursor = connection.cursor()
migrations.AddField(
model_name='channeldb', if not _table_exists(db_cursor, 'comms_msg_db_hide_from_players'):
name='db_account_subscriptions', # OBS - this is run BEFORE migrations are run!
field=models.ManyToManyField(blank=True, db_index=True, related_name='account_subscription_set', to='accounts.AccountDB', verbose_name=b'account subscriptions'), # not a migration of an existing database
), operations = []
migrations.AddField( else:
model_name='msg', operations = [
name='db_hide_from_accounts', migrations.AddField(
field=models.ManyToManyField(blank=True, related_name='hide_from_accounts_set', to='accounts.AccountDB'), model_name='channeldb',
), name='db_account_subscriptions',
migrations.AddField( field=models.ManyToManyField(blank=True, db_index=True, related_name='account_subscription_set', to='accounts.AccountDB', verbose_name=b'account subscriptions'),
model_name='msg', ),
name='db_receivers_accounts', migrations.AddField(
field=models.ManyToManyField(blank=True, help_text=b'account receivers', related_name='receiver_account_set', to='accounts.AccountDB'), model_name='msg',
), name='db_hide_from_accounts',
migrations.AddField( field=models.ManyToManyField(blank=True, related_name='hide_from_accounts_set', to='accounts.AccountDB'),
model_name='msg', ),
name='db_sender_accounts', migrations.AddField(
field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_account_set', to='accounts.AccountDB', verbose_name=b'sender(account)'), model_name='msg',
), name='db_receivers_accounts',
migrations.AlterField( field=models.ManyToManyField(blank=True, help_text=b'account receivers', related_name='receiver_account_set', to='accounts.AccountDB'),
model_name='channeldb', ),
name='db_object_subscriptions', migrations.AddField(
field=models.ManyToManyField(blank=True, db_index=True, related_name='object_subscription_set', to='objects.ObjectDB', verbose_name=b'object subscriptions'), model_name='msg',
), name='db_sender_accounts',
migrations.AlterField( field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_account_set', to='accounts.AccountDB', verbose_name=b'sender(account)'),
model_name='msg', ),
name='db_receivers_scripts', migrations.AlterField(
field=models.ManyToManyField(blank=True, help_text=b'script_receivers', related_name='receiver_script_set', to='scripts.ScriptDB'), model_name='channeldb',
), name='db_object_subscriptions',
migrations.AlterField( field=models.ManyToManyField(blank=True, db_index=True, related_name='object_subscription_set', to='objects.ObjectDB', verbose_name=b'object subscriptions'),
model_name='msg', ),
name='db_sender_scripts', migrations.AlterField(
field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_script_set', to='scripts.ScriptDB', verbose_name=b'sender(script)'), model_name='msg',
), name='db_receivers_scripts',
] field=models.ManyToManyField(blank=True, help_text=b'script_receivers', related_name='receiver_script_set', to='scripts.ScriptDB'),
),
migrations.AlterField(
model_name='msg',
name='db_sender_scripts',
field=models.ManyToManyField(blank=True, db_index=True, related_name='sender_script_set', to='scripts.ScriptDB', verbose_name=b'sender(script)'),
),
]