From cec78e23bc27d9995bb38e031f4a3d52d1128891 Mon Sep 17 00:00:00 2001 From: Umair Khan Date: Thu, 22 Jun 2017 14:27:54 +0500 Subject: [PATCH] migrations: Remove squashed migration files. --- zerver/migrations/0001_initial.py | 509 ------------------ zerver/migrations/0002_django_1_8.py | 61 --- zerver/migrations/0003_custom_indexes.py | 18 - .../0004_userprofile_left_side_userlist.py | 19 - zerver/migrations/0005_auto_20150920_1340.py | 18 - ...0006_zerver_userprofile_email_upper_idx.py | 16 - .../0007_userprofile_is_bot_active_indexes.py | 24 - ...008_preregistrationuser_upper_email_idx.py | 16 - .../migrations/0009_add_missing_migrations.py | 24 - zerver/migrations/0010_delete_streamcolor.py | 21 - zerver/migrations/0011_remove_guardian.py | 114 ---- .../0012_remove_appledevicetoken.py | 21 - zerver/migrations/0013_realmemoji.py | 25 - .../migrations/0014_realm_emoji_url_length.py | 19 - zerver/migrations/0015_attachment.py | 27 - ...0016_realm_create_stream_by_admins_only.py | 19 - .../migrations/0017_userprofile_bot_type.py | 19 - zerver/migrations/0018_realm_emoji_message.py | 20 - ...0019_preregistrationuser_realm_creation.py | 19 - .../0020_add_tracking_attachment.py | 25 - .../0021_migrate_attachment_data.py | 36 -- .../0022_subscription_pin_to_top.py | 19 - .../0023_userprofile_default_language.py | 19 - .../0024_realm_allow_message_editing.py | 19 - .../0025_realm_message_content_edit_limit.py | 19 - zerver/migrations/0026_delete_mituser.py | 17 - .../migrations/0027_realm_default_language.py | 19 - .../0028_userprofile_tos_version.py | 19 - 28 files changed, 1201 deletions(-) delete mode 100644 zerver/migrations/0001_initial.py delete mode 100644 zerver/migrations/0002_django_1_8.py delete mode 100644 zerver/migrations/0003_custom_indexes.py delete mode 100644 zerver/migrations/0004_userprofile_left_side_userlist.py delete mode 100644 zerver/migrations/0005_auto_20150920_1340.py delete mode 100644 zerver/migrations/0006_zerver_userprofile_email_upper_idx.py delete mode 100644 zerver/migrations/0007_userprofile_is_bot_active_indexes.py delete mode 100644 zerver/migrations/0008_preregistrationuser_upper_email_idx.py delete mode 100644 zerver/migrations/0009_add_missing_migrations.py delete mode 100644 zerver/migrations/0010_delete_streamcolor.py delete mode 100644 zerver/migrations/0011_remove_guardian.py delete mode 100644 zerver/migrations/0012_remove_appledevicetoken.py delete mode 100644 zerver/migrations/0013_realmemoji.py delete mode 100644 zerver/migrations/0014_realm_emoji_url_length.py delete mode 100644 zerver/migrations/0015_attachment.py delete mode 100644 zerver/migrations/0016_realm_create_stream_by_admins_only.py delete mode 100644 zerver/migrations/0017_userprofile_bot_type.py delete mode 100644 zerver/migrations/0018_realm_emoji_message.py delete mode 100644 zerver/migrations/0019_preregistrationuser_realm_creation.py delete mode 100644 zerver/migrations/0020_add_tracking_attachment.py delete mode 100644 zerver/migrations/0021_migrate_attachment_data.py delete mode 100644 zerver/migrations/0022_subscription_pin_to_top.py delete mode 100644 zerver/migrations/0023_userprofile_default_language.py delete mode 100644 zerver/migrations/0024_realm_allow_message_editing.py delete mode 100644 zerver/migrations/0025_realm_message_content_edit_limit.py delete mode 100644 zerver/migrations/0026_delete_mituser.py delete mode 100644 zerver/migrations/0027_realm_default_language.py delete mode 100644 zerver/migrations/0028_userprofile_tos_version.py diff --git a/zerver/migrations/0001_initial.py b/zerver/migrations/0001_initial.py deleted file mode 100644 index 3b4befb89f..0000000000 --- a/zerver/migrations/0001_initial.py +++ /dev/null @@ -1,509 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import bitfield.models -import django.db.models.deletion -import django.utils.timezone -from django.conf import settings -import zerver.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('auth', '0001_initial'), - ] - - if "postgres" not in settings.DATABASES["default"]["ENGINE"]: - zulip_postgres_migrations = [] # type: ignore # https://github.com/JukkaL/mypy/issues/1164 - else: - zulip_postgres_migrations = [ - # Full-text search - migrations.RunSQL(""" -CREATE TEXT SEARCH DICTIONARY english_us_hunspell - (template = ispell, DictFile = en_us, AffFile = en_us, StopWords = zulip_english); -CREATE TEXT SEARCH CONFIGURATION zulip.english_us_search (COPY=pg_catalog.english); -ALTER TEXT SEARCH CONFIGURATION zulip.english_us_search - ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part - WITH english_us_hunspell, english_stem; - -CREATE FUNCTION escape_html(text) RETURNS text IMMUTABLE LANGUAGE 'sql' AS $$ - SELECT replace(replace(replace(replace(replace($1, '&', '&'), '<', '<'), - '>', '>'), '"', '"'), '''', '''); -$$ ; - -ALTER TABLE zerver_message ADD COLUMN search_tsvector tsvector; -CREATE INDEX zerver_message_search_tsvector ON zerver_message USING gin(search_tsvector); -ALTER INDEX zerver_message_search_tsvector SET (fastupdate = OFF); - -CREATE TABLE fts_update_log (id SERIAL PRIMARY KEY, message_id INTEGER NOT NULL); -CREATE FUNCTION do_notify_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS - $$ BEGIN NOTIFY fts_update_log; RETURN NEW; END $$; -CREATE TRIGGER fts_update_log_notify AFTER INSERT ON fts_update_log - FOR EACH STATEMENT EXECUTE PROCEDURE do_notify_fts_update_log(); -CREATE FUNCTION append_to_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS - $$ BEGIN INSERT INTO fts_update_log (message_id) VALUES (NEW.id); RETURN NEW; END $$; -CREATE TRIGGER zerver_message_update_search_tsvector_async - BEFORE INSERT OR UPDATE OF subject, rendered_content ON zerver_message - FOR EACH ROW EXECUTE PROCEDURE append_to_fts_update_log(); -"""), - ] - - operations = [ - migrations.CreateModel( - name='UserProfile', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('password', models.CharField(max_length=128, verbose_name='password')), - ('last_login', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last login')), - ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), - ('email', models.EmailField(unique=True, max_length=75, db_index=True)), - ('is_staff', models.BooleanField(default=False)), - ('is_active', models.BooleanField(default=True)), - ('is_bot', models.BooleanField(default=False)), - ('date_joined', models.DateTimeField(default=django.utils.timezone.now)), - ('is_mirror_dummy', models.BooleanField(default=False)), - ('full_name', models.CharField(max_length=100)), - ('short_name', models.CharField(max_length=100)), - ('pointer', models.IntegerField()), - ('last_pointer_updater', models.CharField(max_length=64)), - ('api_key', models.CharField(max_length=32)), - ('enable_stream_desktop_notifications', models.BooleanField(default=True)), - ('enable_stream_sounds', models.BooleanField(default=True)), - ('enable_desktop_notifications', models.BooleanField(default=True)), - ('enable_sounds', models.BooleanField(default=True)), - ('enable_offline_email_notifications', models.BooleanField(default=True)), - ('enable_offline_push_notifications', models.BooleanField(default=True)), - ('enable_digest_emails', models.BooleanField(default=True)), - ('default_desktop_notifications', models.BooleanField(default=True)), - ('last_reminder', models.DateTimeField(default=django.utils.timezone.now, null=True)), - ('rate_limits', models.CharField(default='', max_length=100)), - ('default_all_public_streams', models.BooleanField(default=False)), - ('enter_sends', models.NullBooleanField(default=True)), - ('autoscroll_forever', models.BooleanField(default=False)), - ('twenty_four_hour_time', models.BooleanField(default=False)), - ('avatar_source', models.CharField(default='G', max_length=1, choices=[('G', 'Hosted by Gravatar'), ('U', 'Uploaded by user'), ('S', 'System generated')])), - ('tutorial_status', models.CharField(default='W', max_length=1, choices=[('W', 'Waiting'), ('S', 'Started'), ('F', 'Finished')])), - ('onboarding_steps', models.TextField(default='[]')), - ('invites_granted', models.IntegerField(default=0)), - ('invites_used', models.IntegerField(default=0)), - ('alert_words', models.TextField(default='[]')), - ('muted_topics', models.TextField(default='[]')), - ('bot_owner', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True)), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='AppleDeviceToken', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('token', models.CharField(unique=True, max_length=255)), - ('last_updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Client', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(unique=True, max_length=30, db_index=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DefaultStream', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Huddle', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('huddle_hash', models.CharField(unique=True, max_length=40, db_index=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Message', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('subject', models.CharField(max_length=60, db_index=True)), - ('content', models.TextField()), - ('rendered_content', models.TextField(null=True)), - ('rendered_content_version', models.IntegerField(null=True)), - ('pub_date', models.DateTimeField(verbose_name='date published', db_index=True)), - ('last_edit_time', models.DateTimeField(null=True)), - ('edit_history', models.TextField(null=True)), - ('has_attachment', models.BooleanField(default=False, db_index=True)), - ('has_image', models.BooleanField(default=False, db_index=True)), - ('has_link', models.BooleanField(default=False, db_index=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='MitUser', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('email', models.EmailField(unique=True, max_length=75)), - ('status', models.IntegerField(default=0)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='PreregistrationUser', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('email', models.EmailField(max_length=75)), - ('invited_at', models.DateTimeField(auto_now=True)), - ('status', models.IntegerField(default=0)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='PushDeviceToken', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('kind', models.PositiveSmallIntegerField(choices=[(1, 'apns'), (2, 'gcm')])), - ('token', models.CharField(unique=True, max_length=4096)), - ('last_updated', models.DateTimeField(default=django.utils.timezone.now, auto_now=True)), - ('ios_app_id', models.TextField(null=True)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Realm', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('domain', models.CharField(unique=True, max_length=40, db_index=True)), - ('name', models.CharField(max_length=40, null=True)), - ('restricted_to_domain', models.BooleanField(default=True)), - ('invite_required', models.BooleanField(default=False)), - ('invite_by_admins_only', models.BooleanField(default=False)), - ('mandatory_topics', models.BooleanField(default=False)), - ('show_digest_email', models.BooleanField(default=True)), - ('name_changes_disabled', models.BooleanField(default=False)), - ('date_created', models.DateTimeField(default=django.utils.timezone.now)), - ('deactivated', models.BooleanField(default=False)), - ], - options={ - 'permissions': (('administer', 'Administer a realm'),), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='RealmAlias', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('domain', models.CharField(unique=True, max_length=80, db_index=True)), - ('realm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm', null=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='RealmEmoji', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.TextField()), - ('img_url', models.TextField()), - ('realm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='RealmFilter', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('pattern', models.TextField()), - ('url_format_string', models.TextField()), - ('realm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Recipient', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('type_id', models.IntegerField(db_index=True)), - ('type', models.PositiveSmallIntegerField(db_index=True)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Referral', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('email', models.EmailField(max_length=75)), - ('timestamp', models.DateTimeField(auto_now_add=True)), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='ScheduledJob', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('scheduled_timestamp', models.DateTimeField()), - ('type', models.PositiveSmallIntegerField()), - ('data', models.TextField()), - ('filter_id', models.IntegerField(null=True)), - ('filter_string', models.CharField(max_length=100)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Stream', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('name', models.CharField(max_length=60, db_index=True)), - ('invite_only', models.NullBooleanField(default=False)), - ('email_token', models.CharField(default=zerver.models.generate_email_token_for_stream, max_length=32)), - ('description', models.CharField(default='', max_length=1024)), - ('date_created', models.DateTimeField(default=django.utils.timezone.now)), - ('deactivated', models.BooleanField(default=False)), - ('realm', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='StreamColor', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('color', models.CharField(max_length=10)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Subscription', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('active', models.BooleanField(default=True)), - ('in_home_view', models.NullBooleanField(default=True)), - ('color', models.CharField(default='#c2c2c2', max_length=10)), - ('desktop_notifications', models.BooleanField(default=True)), - ('audible_notifications', models.BooleanField(default=True)), - ('notifications', models.BooleanField(default=False)), - ('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Recipient')), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='UserActivity', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('query', models.CharField(max_length=50, db_index=True)), - ('count', models.IntegerField()), - ('last_visit', models.DateTimeField(verbose_name='last visit')), - ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Client')), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='UserActivityInterval', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('start', models.DateTimeField(verbose_name='start time', db_index=True)), - ('end', models.DateTimeField(verbose_name='end time', db_index=True)), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='UserMessage', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('flags', bitfield.models.BitField(['read', 'starred', 'collapsed', 'mentioned', 'wildcard_mentioned', 'summarize_in_home', 'summarize_in_stream', 'force_expand', 'force_collapse', 'has_alert_word', 'historical', 'is_me_message'], default=0)), - ('message', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Message')), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='UserPresence', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('timestamp', models.DateTimeField(verbose_name='presence changed')), - ('status', models.PositiveSmallIntegerField(default=1)), - ('client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Client')), - ('user_profile', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.AlterUniqueTogether( - name='userpresence', - unique_together=set([('user_profile', 'client')]), - ), - migrations.AlterUniqueTogether( - name='usermessage', - unique_together=set([('user_profile', 'message')]), - ), - migrations.AlterUniqueTogether( - name='useractivity', - unique_together=set([('user_profile', 'client', 'query')]), - ), - migrations.AlterUniqueTogether( - name='subscription', - unique_together=set([('user_profile', 'recipient')]), - ), - migrations.AddField( - model_name='streamcolor', - name='subscription', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Subscription'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='stream', - unique_together=set([('name', 'realm')]), - ), - migrations.AlterUniqueTogether( - name='recipient', - unique_together=set([('type', 'type_id')]), - ), - migrations.AlterUniqueTogether( - name='realmfilter', - unique_together=set([('realm', 'pattern')]), - ), - migrations.AlterUniqueTogether( - name='realmemoji', - unique_together=set([('realm', 'name')]), - ), - migrations.AddField( - model_name='realm', - name='notifications_stream', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', blank=True, to='zerver.Stream', null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='preregistrationuser', - name='realm', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm', null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='preregistrationuser', - name='referred_by', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='preregistrationuser', - name='streams', - field=models.ManyToManyField(to='zerver.Stream', null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='message', - name='recipient', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Recipient'), - preserve_default=True, - ), - migrations.AddField( - model_name='message', - name='sender', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - preserve_default=True, - ), - migrations.AddField( - model_name='message', - name='sending_client', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Client'), - preserve_default=True, - ), - migrations.AddField( - model_name='defaultstream', - name='realm', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm'), - preserve_default=True, - ), - migrations.AddField( - model_name='defaultstream', - name='stream', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Stream'), - preserve_default=True, - ), - migrations.AlterUniqueTogether( - name='defaultstream', - unique_together=set([('realm', 'stream')]), - ), - migrations.AddField( - model_name='userprofile', - name='default_events_register_stream', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='zerver.Stream', null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='userprofile', - name='default_sending_stream', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='zerver.Stream', null=True), - preserve_default=True, - ), - migrations.AddField( - model_name='userprofile', - name='groups', - field=models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Group', blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', verbose_name='groups'), - preserve_default=True, - ), - migrations.AddField( - model_name='userprofile', - name='realm', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='zerver.Realm'), - preserve_default=True, - ), - migrations.AddField( - model_name='userprofile', - name='user_permissions', - field=models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Permission', blank=True, help_text='Specific permissions for this user.', verbose_name='user permissions'), - preserve_default=True, - ), - ] + zulip_postgres_migrations diff --git a/zerver/migrations/0002_django_1_8.py b/zerver/migrations/0002_django_1_8.py deleted file mode 100644 index 29d973bb9c..0000000000 --- a/zerver/migrations/0002_django_1_8.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.contrib.auth.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0001_initial'), - ] - - operations = [ - migrations.AlterModelManagers( - name='userprofile', - managers=[ - ('objects', django.contrib.auth.models.UserManager()), - ], - ), - migrations.AlterField( - model_name='appledevicetoken', - name='last_updated', - field=models.DateTimeField(auto_now=True), - ), - migrations.AlterField( - model_name='mituser', - name='email', - field=models.EmailField(unique=True, max_length=254), - ), - migrations.AlterField( - model_name='preregistrationuser', - name='email', - field=models.EmailField(max_length=254), - ), - migrations.AlterField( - model_name='preregistrationuser', - name='streams', - field=models.ManyToManyField(to='zerver.Stream'), - ), - migrations.AlterField( - model_name='pushdevicetoken', - name='last_updated', - field=models.DateTimeField(auto_now=True), - ), - migrations.AlterField( - model_name='referral', - name='email', - field=models.EmailField(max_length=254), - ), - migrations.AlterField( - model_name='userprofile', - name='email', - field=models.EmailField(unique=True, max_length=254, db_index=True), - ), - migrations.AlterField( - model_name='userprofile', - name='last_login', - field=models.DateTimeField(null=True, verbose_name='last login', blank=True), - ), - ] diff --git a/zerver/migrations/0003_custom_indexes.py b/zerver/migrations/0003_custom_indexes.py deleted file mode 100644 index 34ed3278e7..0000000000 --- a/zerver/migrations/0003_custom_indexes.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0002_django_1_8'), - ] - - operations = [ - migrations.RunSQL("CREATE INDEX upper_subject_idx ON zerver_message ((upper(subject)));", - reverse_sql="DROP INDEX upper_subject_idx;"), - migrations.RunSQL("CREATE INDEX upper_stream_name_idx ON zerver_stream ((upper(name)));", - reverse_sql="DROP INDEX upper_stream_name_idx;") - ] diff --git a/zerver/migrations/0004_userprofile_left_side_userlist.py b/zerver/migrations/0004_userprofile_left_side_userlist.py deleted file mode 100644 index e05213fb42..0000000000 --- a/zerver/migrations/0004_userprofile_left_side_userlist.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0003_custom_indexes'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='left_side_userlist', - field=models.BooleanField(default=False), - ), - ] diff --git a/zerver/migrations/0005_auto_20150920_1340.py b/zerver/migrations/0005_auto_20150920_1340.py deleted file mode 100644 index 710af0000e..0000000000 --- a/zerver/migrations/0005_auto_20150920_1340.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0004_userprofile_left_side_userlist'), - ] - - operations = [ - migrations.AlterModelOptions( - name='realm', - options={'permissions': (('administer', 'Administer a realm'), ('api_super_user', 'Can send messages as other users for mirroring'))}, - ), - ] diff --git a/zerver/migrations/0006_zerver_userprofile_email_upper_idx.py b/zerver/migrations/0006_zerver_userprofile_email_upper_idx.py deleted file mode 100644 index 9b61f41860..0000000000 --- a/zerver/migrations/0006_zerver_userprofile_email_upper_idx.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0005_auto_20150920_1340'), - ] - - operations = [ - migrations.RunSQL("CREATE INDEX upper_userprofile_email_idx ON zerver_userprofile ((upper(email)));", - reverse_sql="DROP INDEX upper_userprofile_email_idx;"), - ] diff --git a/zerver/migrations/0007_userprofile_is_bot_active_indexes.py b/zerver/migrations/0007_userprofile_is_bot_active_indexes.py deleted file mode 100644 index fb033d1d97..0000000000 --- a/zerver/migrations/0007_userprofile_is_bot_active_indexes.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0006_zerver_userprofile_email_upper_idx'), - ] - - operations = [ - migrations.AlterField( - model_name='userprofile', - name='is_active', - field=models.BooleanField(default=True, db_index=True), - ), - migrations.AlterField( - model_name='userprofile', - name='is_bot', - field=models.BooleanField(default=False, db_index=True), - ), - ] diff --git a/zerver/migrations/0008_preregistrationuser_upper_email_idx.py b/zerver/migrations/0008_preregistrationuser_upper_email_idx.py deleted file mode 100644 index 8f4b69dca0..0000000000 --- a/zerver/migrations/0008_preregistrationuser_upper_email_idx.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0007_userprofile_is_bot_active_indexes'), - ] - - operations = [ - migrations.RunSQL("CREATE INDEX upper_preregistration_email_idx ON zerver_preregistrationuser ((upper(email)));", - reverse_sql="DROP INDEX upper_preregistration_email_idx;"), - ] diff --git a/zerver/migrations/0009_add_missing_migrations.py b/zerver/migrations/0009_add_missing_migrations.py deleted file mode 100644 index df85cdfcc2..0000000000 --- a/zerver/migrations/0009_add_missing_migrations.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0008_preregistrationuser_upper_email_idx'), - ] - - operations = [ - migrations.AlterField( - model_name='userprofile', - name='enable_stream_desktop_notifications', - field=models.BooleanField(default=False), - ), - migrations.AlterField( - model_name='userprofile', - name='enable_stream_sounds', - field=models.BooleanField(default=False), - ), - ] diff --git a/zerver/migrations/0010_delete_streamcolor.py b/zerver/migrations/0010_delete_streamcolor.py deleted file mode 100644 index 7927caae5d..0000000000 --- a/zerver/migrations/0010_delete_streamcolor.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0009_add_missing_migrations'), - ] - - operations = [ - migrations.RemoveField( - model_name='streamcolor', - name='subscription', - ), - migrations.DeleteModel( - name='StreamColor', - ), - ] diff --git a/zerver/migrations/0011_remove_guardian.py b/zerver/migrations/0011_remove_guardian.py deleted file mode 100644 index 9e41568a44..0000000000 --- a/zerver/migrations/0011_remove_guardian.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db.backends.postgresql_psycopg2.schema import DatabaseSchemaEditor -from django.db.migrations.state import StateApps -from django.db import models, migrations, connection -from django.conf import settings - -# Translate the UserProfile fields back to the old Guardian model -def unmigrate_guardian_data(apps, schema_editor): - # type: (StateApps, DatabaseSchemaEditor) -> None - Permission = apps.get_model('auth', 'Permission') - ContentType = apps.get_model('contenttypes', 'ContentType') - UserProfile = apps.get_model('zerver', 'UserProfile') - - try: - administer = Permission.objects.get(codename="administer") - except Permission.DoesNotExist: - administer = Permission.objects.create(codename="administer") - try: - api_super_user = Permission.objects.get(codename="api_super_user") - except Permission.DoesNotExist: - api_super_user = Permission.objects.create(codename="api_super_user") - realm_content_type = ContentType.objects.get(app_label="zerver", - model="realm") - - # assign_perm isn't usable inside a migration, so we just directly - # create the UserObjectPermission objects - UserObjectPermission = apps.get_model('guardian', 'UserObjectPermission') - for user_profile in UserProfile.objects.filter(is_realm_admin=True): - UserObjectPermission(permission=administer, - user_id=user_profile.id, - object_pk=user_profile.realm_id, - content_type=realm_content_type).save() - for user_profile in UserProfile.objects.filter(is_api_super_user=True): - UserObjectPermission(permission=api_super_user, - user_id=user_profile.id, - object_pk=user_profile.realm_id, - content_type=realm_content_type).save() - -# Migrate all the guardian data for which users are realm admins or -# API super users to the new fields on the UserProfile model -def migrate_guardian_data(apps, schema_editor): - # type: (StateApps, DatabaseSchemaEditor) -> None - Permission = apps.get_model('auth', 'Permission') - ContentType = apps.get_model('contenttypes', 'ContentType') - UserProfile = apps.get_model('zerver', 'UserProfile') - - try: - administer_id = Permission.objects.get(codename="administer").id - except Permission.DoesNotExist: - administer_id = None - try: - api_super_user_id = Permission.objects.get(codename="api_super_user").id - except Permission.DoesNotExist: - api_super_user_id = None - - # If ContentType hasn't been initialized yet, we have a new, clean - # database and the below is not needed - if ContentType.objects.count() == 0: - return - - realm_content_type = ContentType.objects.get(app_label="zerver", - model="realm") - - cursor = connection.cursor() - cursor.execute("SELECT id, object_pk, content_type_id, permission_id, user_id FROM guardian_userobjectpermission") - for row in cursor.fetchall(): - (row_id, object_pk, content_type_id, permission_id, user_id) = row - if content_type_id != realm_content_type.id: - raise Exception("Unexected non-realm content type") - user_profile = UserProfile.objects.get(id=user_id) - if permission_id == administer_id: - user_profile.is_realm_admin = True - elif permission_id == api_super_user_id: - user_profile.is_api_super_user = True - else: - raise Exception("Unexpected Django permission") - user_profile.save() - # Set the email gateway bot as an API super user so we can clean - # up the old API_SUPER_USERS hack. - if settings.EMAIL_GATEWAY_BOT is not None: - try: - email_gateway_bot = UserProfile.objects.get(email__iexact=settings.EMAIL_GATEWAY_BOT) - email_gateway_bot.is_api_super_user = True - email_gateway_bot.save() - except UserProfile.DoesNotExist: - pass - - # Delete the old permissions data in the Guardian tables; this - # makes the reverse-migration work safely (otherwise we'd have to - # worry about the migrate/unmigrate process racing with a user's - # admin permissions being revoked). - cursor.execute("DELETE FROM guardian_userobjectpermission") - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0010_delete_streamcolor'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='is_api_super_user', - field=models.BooleanField(default=False, db_index=True), - ), - migrations.AddField( - model_name='userprofile', - name='is_realm_admin', - field=models.BooleanField(default=False, db_index=True), - ), - migrations.RunPython(migrate_guardian_data, unmigrate_guardian_data), - ] diff --git a/zerver/migrations/0012_remove_appledevicetoken.py b/zerver/migrations/0012_remove_appledevicetoken.py deleted file mode 100644 index c3296120c5..0000000000 --- a/zerver/migrations/0012_remove_appledevicetoken.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0011_remove_guardian'), - ] - - operations = [ - migrations.RemoveField( - model_name='appledevicetoken', - name='user', - ), - migrations.DeleteModel( - name='AppleDeviceToken', - ), - ] diff --git a/zerver/migrations/0013_realmemoji.py b/zerver/migrations/0013_realmemoji.py deleted file mode 100644 index 8017b58a7e..0000000000 --- a/zerver/migrations/0013_realmemoji.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -import django.core.validators - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0012_remove_appledevicetoken'), - ] - - operations = [ - migrations.AlterField( - model_name='realmemoji', - name='img_url', - field=models.URLField(), - ), - migrations.AlterField( - model_name='realmemoji', - name='name', - field=models.TextField(validators=[django.core.validators.MinLengthValidator(1), django.core.validators.RegexValidator(regex='^[0-9a-zA-Z.\\-_]+(? None - Attachment = apps.get_model('zerver', 'Attachment') - Recipient = apps.get_model('zerver', 'Recipient') - Stream = apps.get_model('zerver', 'Stream') - - attachments = Attachment.objects.all() - for entry in attachments: - owner = entry.owner - entry.realm = owner.realm - for message in entry.messages.all(): - if owner == message.sender: - if message.recipient.type == Recipient.STREAM: - stream = Stream.objects.get(id=message.recipient.type_id) - is_realm_public = not stream.realm.is_zephyr_mirror_realm and not stream.invite_only - entry.is_realm_public = entry.is_realm_public or is_realm_public - - entry.save() - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0020_add_tracking_attachment'), - ] - - operations = [ - migrations.RunPython(migrate_existing_data) - ] diff --git a/zerver/migrations/0022_subscription_pin_to_top.py b/zerver/migrations/0022_subscription_pin_to_top.py deleted file mode 100644 index e673a328ee..0000000000 --- a/zerver/migrations/0022_subscription_pin_to_top.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0021_migrate_attachment_data'), - ] - - operations = [ - migrations.AddField( - model_name='subscription', - name='pin_to_top', - field=models.BooleanField(default=False), - ), - ] diff --git a/zerver/migrations/0023_userprofile_default_language.py b/zerver/migrations/0023_userprofile_default_language.py deleted file mode 100644 index de82b9a107..0000000000 --- a/zerver/migrations/0023_userprofile_default_language.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0022_subscription_pin_to_top'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='default_language', - field=models.CharField(default='en', max_length=50), - ), - ] diff --git a/zerver/migrations/0024_realm_allow_message_editing.py b/zerver/migrations/0024_realm_allow_message_editing.py deleted file mode 100644 index 746b1fa2e3..0000000000 --- a/zerver/migrations/0024_realm_allow_message_editing.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0023_userprofile_default_language'), - ] - - operations = [ - migrations.AddField( - model_name='realm', - name='allow_message_editing', - field=models.BooleanField(default=True), - ), - ] diff --git a/zerver/migrations/0025_realm_message_content_edit_limit.py b/zerver/migrations/0025_realm_message_content_edit_limit.py deleted file mode 100644 index 4a330f7da5..0000000000 --- a/zerver/migrations/0025_realm_message_content_edit_limit.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0024_realm_allow_message_editing'), - ] - - operations = [ - migrations.AddField( - model_name='realm', - name='message_content_edit_limit_seconds', - field=models.IntegerField(default=600), - ), - ] diff --git a/zerver/migrations/0026_delete_mituser.py b/zerver/migrations/0026_delete_mituser.py deleted file mode 100644 index ca80bb20f6..0000000000 --- a/zerver/migrations/0026_delete_mituser.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0025_realm_message_content_edit_limit'), - ] - - operations = [ - migrations.DeleteModel( - name='MitUser', - ), - ] diff --git a/zerver/migrations/0027_realm_default_language.py b/zerver/migrations/0027_realm_default_language.py deleted file mode 100644 index afccd6cbd2..0000000000 --- a/zerver/migrations/0027_realm_default_language.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0026_delete_mituser'), - ] - - operations = [ - migrations.AddField( - model_name='realm', - name='default_language', - field=models.CharField(default='en', max_length=50), - ), - ] diff --git a/zerver/migrations/0028_userprofile_tos_version.py b/zerver/migrations/0028_userprofile_tos_version.py deleted file mode 100644 index 6661c6d8a6..0000000000 --- a/zerver/migrations/0028_userprofile_tos_version.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('zerver', '0027_realm_default_language'), - ] - - operations = [ - migrations.AddField( - model_name='userprofile', - name='tos_version', - field=models.CharField(max_length=10, null=True), - ), - ]