def forwards(self, orm): # kill everything because the existing map references are not valid, # and not worth writing the migration code db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table("replays_sc2rankscache") db.clear_table("replays_playeringame") db.clear_table("replays_player") db.clear_table("replays_game") db.clear_table("replays_map") # Adding field 'Map.hash' db.add_column( "replays_map", "hash", self.gf("django.db.models.fields.CharField")(max_length=255, null=True), keep_default=False, ) # Adding field 'Map.gateway' db.add_column( "replays_map", "gateway", self.gf("django.db.models.fields.CharField")(max_length=5, null=True), keep_default=False, )
def forwards(self, orm): # The default values for these new columns may not match the actual # values of courses already present in the table. To ensure that the # cached values are correct, we must clear the table before adding any # new columns. db.clear_table('course_overviews_courseoverview') # Adding field 'CourseOverview.enrollment_start' db.add_column('course_overviews_courseoverview', 'enrollment_start', self.gf('django.db.models.fields.DateTimeField')(null=True), keep_default=False) # Adding field 'CourseOverview.enrollment_end' db.add_column('course_overviews_courseoverview', 'enrollment_end', self.gf('django.db.models.fields.DateTimeField')(null=True), keep_default=False) # Adding field 'CourseOverview.enrollment_domain' db.add_column('course_overviews_courseoverview', 'enrollment_domain', self.gf('django.db.models.fields.TextField')(null=True), keep_default=False) # Adding field 'CourseOverview.invitation_only' db.add_column('course_overviews_courseoverview', 'invitation_only', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) # Adding field 'CourseOverview.max_student_enrollments_allowed' db.add_column('course_overviews_courseoverview', 'max_student_enrollments_allowed', self.gf('django.db.models.fields.IntegerField')(null=True), keep_default=False)
def forwards(self, orm): "Write your forwards methods here." # Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..." db.clear_table('auth_group') from django.core.management import call_command call_command("loaddata", "fixtures/groups.json")
def forwards(self, orm): # truncate our tables db.clear_table('auth_permission') db.clear_table('auth_group_permissions') # recreate our permissions from smartmin import management from south import models kwargs = { 'app': models } management.check_all_permissions(models, **kwargs) management.check_all_group_permissions(models, **kwargs) management.check_all_anon_permissions(models, **kwargs) # these are the only permissions in use on an object level old_permissions = dict( pollcategoryset_read=154, pollcategoryset_update=129, pollcategory_update=133, poll_read=146, poll_update=126) # patch our existing object level permissions for codename, old_id in old_permissions.iteritems(): permission = orm['auth.Permission'].objects.get(codename=codename) db.execute("UPDATE guardian_userobjectpermission SET permission_id = %s WHERE permission_id = %s", [permission.id, old_id]) db.execute("UPDATE guardian_groupobjectpermission SET permission_id = %s WHERE permission_id = %s", [permission.id, old_id])
def forwards(self, orm): # Adding M2M table for field geometries on 'Issue' m2m_table_name = db.shorten_name(u'ahjodoc_issue_geometries') db.create_table(m2m_table_name, ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), ('issue', models.ForeignKey(orm[u'ahjodoc.issue'], null=False)), ('issuegeometry', models.ForeignKey(orm[u'ahjodoc.issuegeometry'], null=False)) )) db.create_unique(m2m_table_name, ['issue_id', 'issuegeometry_id']) # Deleting field 'IssueGeometry.issue' db.delete_column(u'ahjodoc_issuegeometry', 'issue_id') db.clear_table(u'ahjodoc_issuegeometry') # Adding field 'IssueGeometry.type' db.add_column(u'ahjodoc_issuegeometry', 'type', self.gf('django.db.models.fields.CharField')(max_length=20, db_index=True), keep_default=False) # Adding index on 'IssueGeometry', fields ['name'] db.create_index(u'ahjodoc_issuegeometry', ['name']) # Adding unique constraint on 'IssueGeometry', fields ['type', 'name'] db.create_unique(u'ahjodoc_issuegeometry', ['type', 'name'])
def forwards(self, orm): db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table('replays_sc2rankscache') db.clear_table('replays_playeringame') db.clear_table('replays_player') db.clear_table('replays_game') db.clear_table('replays_map') # Adding model 'Replay' db.create_table('replays_replay', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('md5hash', self.gf('django.db.models.fields.CharField')( max_length=32, db_index=True)), )) db.send_create_signal('replays', ['Replay']) # Deleting field 'Game.md5hash' db.delete_column('replays_game', 'md5hash') # Deleting field 'Game.filename' db.delete_column('replays_game', 'filename') # Adding field 'Game.replay' db.add_column('replays_game', 'replay', self.gf('django.db.models.fields.related.ForeignKey')( default=None, to=orm['replays.Replay']), keep_default=False)
def backwards(self, orm): "Write your backwards methods here." # Вот здесь поаккуратнее - чистится все, не только последние добавления all_songs_in_db = Song.objects.all() print "Deleted", len(all_songs_in_db), "songs" all_terms_in_db = IndexElement.objects.all() print "Deleted", len(all_terms_in_db), "words" db.clear_table('lyrics_song') db.clear_table('lyrics_indexelement')
def forwards(self, orm): # Eh, I'm not so worried about tracking user notices that this is a problem db.clear_table(u'myuw_mobile_usernotices') # Adding unique constraint on 'UserNotices', fields ['notice_hash', 'user'] db.create_unique(u'myuw_mobile_usernotices', ['notice_hash', 'user_id']) # Adding field 'CategoryLinks.new_tab' db.add_column(u'myuw_mobile_categorylinks', 'new_tab', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
def forwards(self, orm): # Deleting field 'AccountReminding.event_day' db.clear_table(u'accounts_accountreminding') db.delete_column(u'accounts_accountreminding', 'event_day_id') # Adding field 'AccountReminding.event' db.add_column(u'accounts_accountreminding', 'event', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['event.Event']), keep_default=False)
def forwards(self, orm): # Adding field 'CourseOverview.cert_html_view_enabled' # The default value for the cert_html_view_eanbled column is False. # However, for courses in the table for which cert_html_view_enabled # should be True, this would be invalid. So, we must clear the # table before adding the new column. db.clear_table('course_overviews_courseoverview') db.add_column('course_overviews_courseoverview', 'cert_html_view_enabled', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
def forwards(self, orm): # Deleting field 'AccountReminding.event_day' db.clear_table(u'accounts_accountreminding') db.delete_column(u'accounts_accountreminding', 'event_day_id') # Adding field 'AccountReminding.event' db.add_column(u'accounts_accountreminding', 'event', self.gf('django.db.models.fields.related.ForeignKey')( to=orm['event.Event']), keep_default=False)
def forwards(self, orm): # Adding field 'CourseOverview.days_early_for_beta' # The default value for the days_early_for_beta column is null. However, # for courses already in the table that have a non-null value for # days_early_for_beta, this would be invalid. So, we must clear the # table before adding the new column. db.clear_table('course_overviews_courseoverview') db.add_column('course_overviews_courseoverview', 'days_early_for_beta', self.gf('django.db.models.fields.FloatField')(null=True), keep_default=False)
def forwards(self, orm): "Write your forwards methods here." # Note: Remember to use orm['appname.ModelName'] rather than "from appname.models..." for user in orm.LinkUser.objects.filter(groups=5): all_groups = Group.objects.all() for ag in all_groups: user.groups.remove(ag) user.groups.add(2) db.clear_table('auth_group') from django.core.management import call_command call_command("loaddata", "fixtures/groups.json")
def forwards(self, orm): # Adding field 'CourseOverview.cert_html_view_enabled' # The default value for the cert_html_view_eanbled column is False. # However, for courses in the table for which cert_html_view_enabled # should be True, this would be invalid. So, we must clear the # table before adding the new column. db.clear_table("course_overviews_courseoverview") db.add_column( "course_overviews_courseoverview", "cert_html_view_enabled", self.gf("django.db.models.fields.BooleanField")(default=False), keep_default=False, )
def forwards(self, orm): # Adding model 'List' db.create_table('todos_list', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)), )) db.send_create_signal('todos', ['List']) # Clear existing todos if not db.dry_run: db.clear_table('todos_todo') # Adding field 'ToDo.list' db.add_column('todos_todo', 'list', self.gf('django.db.models.fields.related.ForeignKey')(default=0, related_name='todos', to=orm['todos.List']), keep_default=False)
def forwards(self, orm): """Load sql dump of Locaions and PostalCodes. Nuke mooi_location too because otherwise we won't be able to use mysql load. """ # save location data in memory locations = {} for location in orm.Location.objects.all(): city = location.city if city not in locations: locations[city] = [id_list[0] for id_list in location.profile_set.values_list('id')] print locations # nuke mooi_location as any data will corrupt our mysql load command below db.clear_table('mooi_location') dbhostname = settings.DATABASES['default']['HOST'] dbusername = settings.DATABASES['default']['USER'] dbpassword = settings.DATABASES['default']['PASSWORD'] dbname = settings.DATABASES['default']['NAME'] dumpfiletarball = 'locations_with_postalcodes.tar.bz2' dumpfilepath = 'mooi/fixtures/' dumpfilename = 'locations_with_postalcodes.sql' os.chdir(dumpfilepath) if not os.path.isfile(dumpfilename): subprocess.check_call(["tar", "xjvf", dumpfiletarball]) dumpfile = open(dumpfilename) ret = subprocess.check_call(["mysql", "-h", dbhostname, "-u", dbusername, "--password=%s" % (dbpassword,), dbname], stdin=dumpfile) dumpfile.close() os.chdir('../..') # restore location data for city, user_id_list in locations.items(): new_locations = orm.Location.objects.filter(city=city) if len(new_locations) == 1: location_to_set = new_locations[0] elif len(new_locations) > 1: print ["%s, %s" % (j.city, j.region ) for j in new_locations ] choice = int(raw_input("Which city is correct (0 is first): ")) location_to_set = new_locations[choice]
def backwards(self, orm): # Removing unique constraint on 'IssueGeometry', fields ['type', 'name'] db.delete_unique(u'ahjodoc_issuegeometry', ['type', 'name']) # Removing index on 'IssueGeometry', fields ['name'] db.delete_index(u'ahjodoc_issuegeometry', ['name']) # Removing M2M table for field geometries on 'Issue' db.delete_table(db.shorten_name(u'ahjodoc_issue_geometries')) db.clear_table(u'ahjodoc_issuegeometry') # Adding field 'IssueGeometry.issue' db.add_column(u'ahjodoc_issuegeometry', 'issue', self.gf('django.db.models.fields.related.ForeignKey')(default='', to=orm['ahjodoc.Issue']), keep_default=False) # Deleting field 'IssueGeometry.type' db.delete_column(u'ahjodoc_issuegeometry', 'type')
def forwards(self, orm): # The default values for these new columns may not match the actual # values of courses already present in the table. To ensure that the # cached values are correct, we must clear the table before adding any # new columns. db.clear_table('course_overviews_courseoverview') # Adding field 'CourseOverview.enrollment_start' db.add_column( 'course_overviews_courseoverview', 'enrollment_start', self.gf('django.db.models.fields.DateTimeField')(null=True), keep_default=False) # Adding field 'CourseOverview.enrollment_end' db.add_column( 'course_overviews_courseoverview', 'enrollment_end', self.gf('django.db.models.fields.DateTimeField')(null=True), keep_default=False) # Adding field 'CourseOverview.enrollment_domain' db.add_column('course_overviews_courseoverview', 'enrollment_domain', self.gf('django.db.models.fields.TextField')(null=True), keep_default=False) # Adding field 'CourseOverview.invitation_only' db.add_column( 'course_overviews_courseoverview', 'invitation_only', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) # Adding field 'CourseOverview.max_student_enrollments_allowed' db.add_column( 'course_overviews_courseoverview', 'max_student_enrollments_allowed', self.gf('django.db.models.fields.IntegerField')(null=True), keep_default=False)
def forwards(self, orm): db.start_transaction() db.clear_table('lizard_rainapp_rainvalue') db.clear_table('lizard_rainapp_completerainvalue') db.clear_table('lizard_rainapp_geoobject') db.commit_transaction() # Adding model 'RainappConfig' db.create_table('lizard_rainapp_rainappconfig', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=128)), ('jdbcsource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['lizard_fewsjdbc.JdbcSource'])), ('filter_id', self.gf('django.db.models.fields.CharField')(max_length=128)), )) db.send_create_signal('lizard_rainapp', ['RainappConfig']) # Adding field 'RainValue.config' db.add_column('lizard_rainapp_rainvalue', 'config', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['lizard_rainapp.RainappConfig']), keep_default=False) # Adding field 'CompleteRainValue.config' db.add_column('lizard_rainapp_completerainvalue', 'config', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['lizard_rainapp.RainappConfig']), keep_default=False) # Deleting field 'GeoObject.filterkey' db.delete_column('lizard_rainapp_geoobject', 'filterkey') # Adding field 'GeoObject.config' db.add_column('lizard_rainapp_geoobject', 'config', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['lizard_rainapp.RainappConfig']), keep_default=False)
def forwards(self, orm): # Adding field 'ProductStock.manual_monthly_consumption' db.add_column('logistics_productstock', 'manual_monthly_consumption', self.gf('django.db.models.fields.PositiveIntegerField')(default=None, null=True, blank=True), keep_default=False) # Adding field 'ProductStock.auto_monthly_consumption' db.add_column('logistics_productstock', 'auto_monthly_consumption', self.gf('django.db.models.fields.PositiveIntegerField')(default=None, null=True, blank=True), keep_default=False) # Adding field 'ProductStock.use_auto_consumption' db.add_column('logistics_productstock', 'use_auto_consumption', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) # Clean start on everything stock related db.clear_table('logistics_requisitionreport') db.clear_table('logistics_stocktransaction') # Turns out we should NOT clear product reports, so that we don't send out # nagging reminders after the upgrade # db.clear_table('logistics_productreport') # we need to persist productstock: specifically, 'consumption' # db.clear_table('logistics_productstock') # Adding model 'SupplyPointType' db.create_table('logistics_supplypointtype', ( ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), ('code', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50, primary_key=True, db_index=True)), )) db.send_create_signal('logistics', ['SupplyPointType']) # Adding model 'SupplyPoint' db.create_table('logistics_supplypoint', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), ('active', self.gf('django.db.models.fields.BooleanField')(default=True)), ('type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['logistics.SupplyPointType'])), ('created_at', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), ('last_reported', self.gf('django.db.models.fields.DateTimeField')(default=None, null=True, blank=True)), ('location', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['locations.Location'])), ('supplied_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['logistics.SupplyPoint'], null=True, blank=True)), )) db.send_create_signal('logistics', ['SupplyPoint'])
def forwards(self, orm): db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table('replays_playeringame') db.clear_table('replays_playeringamestat') db.clear_table('replays_player') db.clear_table('replays_game') # Adding model 'Map' db.create_table('replays_map', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), )) db.send_create_signal('replays', ['Map']) # Adding field 'Game.map' db.add_column('replays_game', 'map', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['replays.Map']), keep_default=False)
def forwards(self, orm): # kill everything because the existing map references are not valid, # and not worth writing the migration code db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table('replays_sc2rankscache') db.clear_table('replays_playeringame') db.clear_table('replays_player') db.clear_table('replays_game') db.clear_table('replays_map') # Adding field 'Map.hash' db.add_column('replays_map', 'hash', self.gf('django.db.models.fields.CharField')( max_length=255, null=True), keep_default=False) # Adding field 'Map.gateway' db.add_column('replays_map', 'gateway', self.gf('django.db.models.fields.CharField')( max_length=5, null=True), keep_default=False)
def forwards(self, orm): db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table('replays_sc2rankscache') db.clear_table('replays_playeringame') db.clear_table('replays_player') db.clear_table('replays_game') db.clear_table('replays_map') # Adding model 'Replay' db.create_table('replays_replay', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('md5hash', self.gf('django.db.models.fields.CharField')(max_length=32, db_index=True)), )) db.send_create_signal('replays', ['Replay']) # Deleting field 'Game.md5hash' db.delete_column('replays_game', 'md5hash') # Deleting field 'Game.filename' db.delete_column('replays_game', 'filename') # Adding field 'Game.replay' db.add_column('replays_game', 'replay', self.gf('django.db.models.fields.related.ForeignKey')(default=None, to=orm['replays.Replay']), keep_default=False)
def forwards(self, orm): db.execute("SET CONSTRAINTS ALL IMMEDIATE") db.clear_table('replays_playeringame') db.clear_table('replays_playeringamestat') db.clear_table('replays_player') db.clear_table('replays_game') # Adding model 'Map' db.create_table('replays_map', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), )) db.send_create_signal('replays', ['Map']) # Adding field 'Game.map' db.add_column('replays_game', 'map', self.gf('django.db.models.fields.related.ForeignKey')( default=0, to=orm['replays.Map']), keep_default=False)
def backwards(self, orm): "Write your backwards methods here." db.clear_table('config_languageconfig')
def backwards(self, orm): db.clear_table(orm['redirect.ExcludedViewSource']._meta.db_table)
def backwards(self, orm): "Write your backwards methods here." db.clear_table('feeder_bundle') db.clear_table('feeder_bundle_feeds') db.clear_table('feeder_feed')
def forwards(self, orm): # Adding field 'ProductStock.manual_monthly_consumption' db.add_column('logistics_productstock', 'manual_monthly_consumption', self.gf('django.db.models.fields.PositiveIntegerField')( default=None, null=True, blank=True), keep_default=False) # Adding field 'ProductStock.auto_monthly_consumption' db.add_column('logistics_productstock', 'auto_monthly_consumption', self.gf('django.db.models.fields.PositiveIntegerField')( default=None, null=True, blank=True), keep_default=False) # Adding field 'ProductStock.use_auto_consumption' db.add_column( 'logistics_productstock', 'use_auto_consumption', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) # Clean start on everything stock related db.clear_table('logistics_requisitionreport') db.clear_table('logistics_stocktransaction') # Turns out we should NOT clear product reports, so that we don't send out # nagging reminders after the upgrade # db.clear_table('logistics_productreport') # we need to persist productstock: specifically, 'consumption' # db.clear_table('logistics_productstock') # Adding model 'SupplyPointType' db.create_table('logistics_supplypointtype', ( ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), ('code', self.gf('django.db.models.fields.SlugField')( unique=True, max_length=50, primary_key=True, db_index=True)), )) db.send_create_signal('logistics', ['SupplyPointType']) # Adding model 'SupplyPoint' db.create_table('logistics_supplypoint', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), ('active', self.gf('django.db.models.fields.BooleanField')(default=True)), ('type', self.gf('django.db.models.fields.related.ForeignKey')( to=orm['logistics.SupplyPointType'])), ('created_at', self.gf('django.db.models.fields.DateTimeField')( auto_now_add=True, blank=True)), ('code', self.gf('django.db.models.fields.CharField')( unique=True, max_length=100)), ('last_reported', self.gf('django.db.models.fields.DateTimeField')( default=None, null=True, blank=True)), ('location', self.gf('django.db.models.fields.related.ForeignKey')( to=orm['locations.Location'])), ('supplied_by', self.gf('django.db.models.fields.related.ForeignKey')( to=orm['logistics.SupplyPoint'], null=True, blank=True)), )) db.send_create_signal('logistics', ['SupplyPoint'])
def backwards(self, orm): db.clear_table('hwdoc_rack')
def backwards(self, orm): db.clear_table(orm['auth.Group']._meta.db_table)
def forwards(self, orm): """Load sql dump of Locaions and PostalCodes. Nuke mooi_location too because otherwise we won't be able to use mysql load. """ # save location data in memory locations = {} for location in orm.Location.objects.all(): city = location.city if city not in locations: locations[city] = [ id_list[0] for id_list in location.profile_set.values_list('id') ] print locations # nuke mooi_location as any data will corrupt our mysql load command below db.clear_table('mooi_location') dbhostname = settings.DATABASES['default']['HOST'] dbusername = settings.DATABASES['default']['USER'] dbpassword = settings.DATABASES['default']['PASSWORD'] dbname = settings.DATABASES['default']['NAME'] dumpfiletarball = 'locations_with_postalcodes.tar.bz2' dumpfilepath = 'mooi/fixtures/' dumpfilename = 'locations_with_postalcodes.sql' os.chdir(dumpfilepath) if not os.path.isfile(dumpfilename): subprocess.check_call(["tar", "xjvf", dumpfiletarball]) dumpfile = open(dumpfilename) ret = subprocess.check_call([ "mysql", "-h", dbhostname, "-u", dbusername, "--password=%s" % (dbpassword, ), dbname ], stdin=dumpfile) dumpfile.close() os.chdir('../..') # restore location data for city, user_id_list in locations.items(): new_locations = orm.Location.objects.filter(city=city) if len(new_locations) == 1: location_to_set = new_locations[0] elif len(new_locations) > 1: print["%s, %s" % (j.city, j.region) for j in new_locations] choice = int(raw_input("Which city is correct (0 is first): ")) location_to_set = new_locations[choice] else: print "Couldn't find city matching '%s' for these user ids:" % city print user_id_list continue for user_id in user_id_list: user_model = orm['auth.User'] try: user = user_model.objects.get(pk=user_id) except: print "Couldn't fix loation of uid:%d\n" % user_id continue try: user.profile.postal_code = location_to_set.postalcode_set.all( )[0] user.profile.save() except: print "Couldn't change location for uid:%d to loc id: %d" % ( user_id, location_to_set.id)