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)
示例#3
0
    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")
示例#4
0
    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):
     "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):
        # 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'])
示例#7
0
    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)
示例#8
0
 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)
示例#12
0
    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)
示例#13
0
    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)
示例#14
0
 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")
示例#15
0
    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)
示例#18
0
    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)
示例#22
0
    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)
示例#27
0
 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)
示例#29
0
 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 backwards(self, orm):
     db.clear_table(orm['redirect.ExcludedViewSource']._meta.db_table)
示例#31
0
    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'])
示例#32
0
 def backwards(self, orm):
     db.clear_table('hwdoc_rack')
示例#33
0
 def backwards(self, orm):
     db.clear_table('hwdoc_rack')
示例#34
0
 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')
示例#35
0
 def backwards(self, orm):
     db.clear_table(orm['auth.Group']._meta.db_table)
示例#36
0
    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)