Fix ContentType related migrations

This should fix the issues reported in FS#23228 for the most part.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2012-04-20 10:36:20 -05:00
parent d21d8be018
commit c3a5f8a4e8
5 changed files with 33 additions and 33 deletions

View File

@ -6,10 +6,6 @@
class Migration(SchemaMigration):
depends_on = (
('mirrors', '0002_rename_model_tables'),
)
def forwards(self, orm):
pass

View File

@ -6,10 +6,6 @@
class Migration(SchemaMigration):
depends_on = (
('news', '0002_move_news_in'),
)
def forwards(self, orm):
pass

View File

@ -5,31 +5,15 @@
from django.db import models
class Migration(DataMigration):
depends_on = (
('mirrors', '0002_rename_model_tables'),
('news', '0002_move_news_in'),
)
mirror_apps = [ 'mirror', 'mirrorprotocol', 'mirrorurl', 'mirrorrsync' ]
'''This is a defunct migration now, things have been moved to their proper
places, but removing it would cause all existing setups migrated past this
to complain.'''
def forwards(self, orm):
ct = orm['contenttypes.ContentType'].objects
# somehow these got in there already; remove them in favor of the old
ct.filter(app_label='news').delete()
ct.filter(app_label='mirrors').delete()
ct.filter(app_label='main', model='news').update(app_label='news')
ct.filter(app_label='main', model__in=self.mirror_apps).update(
app_label='mirrors')
pass
def backwards(self, orm):
ct = orm['contenttypes.ContentType'].objects
ct.filter(app_label='mirrors', model__in=self.mirror_apps).update(
app_label='main')
ct.filter(app_label='news', model='news').update(app_label='main')
pass
models = {
'auth.group': {

View File

@ -7,21 +7,33 @@
class Migration(SchemaMigration):
depends_on = (
('main', '0014_mirror_notes_rsync_optional'),
('main', '0030_move_mirror_models'),
)
mirror_apps = [ 'mirror', 'mirrorprotocol', 'mirrorurl', 'mirrorrsync' ]
def forwards(self, orm):
db.rename_table('main_mirror', 'mirrors_mirror')
db.rename_table('main_mirrorurl', 'mirrors_mirrorurl')
db.rename_table('main_mirrorrsync', 'mirrors_mirrorrsync')
db.rename_table('main_mirrorprotocol', 'mirrors_mirrorprotocol')
if not db.dry_run:
ct = orm['contenttypes.ContentType'].objects
ct.filter(app_label='main', model__in=self.mirror_apps).update(
app_label='mirrors')
def backwards(self, orm):
db.rename_table('mirrors_mirror', 'main_mirror')
db.rename_table('mirrors_mirrorurl', 'main_mirrorurl')
db.rename_table('mirrors_mirrorrsync', 'main_mirrorrsync')
db.rename_table('mirrors_mirrorprotocol', 'main_mirrorprotocol')
if not db.dry_run:
ct = orm['contenttypes.ContentType'].objects
ct.filter(app_label='mirrors', model__in=self.mirror_apps).update(
app_label='main')
models = {
'mirrors.mirror': {
'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'},
@ -55,6 +67,13 @@ def backwards(self, orm):
'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}),
'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}),
'url': ('django.db.models.fields.CharField', [], {'max_length': '255'})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
}
}

View File

@ -7,14 +7,19 @@
class Migration(SchemaMigration):
depends_on = (
('main', '0001_initial'),
('main', '0031_move_news_out'),
)
def forwards(self, orm):
pass
db.send_create_signal('news', ['News'])
if not db.dry_run:
ct = orm['contenttypes.ContentType'].objects
ct.filter(app_label='main', model='news').update(app_label='news')
def backwards(self, orm):
pass
if not db.dry_run:
ct = orm['contenttypes.ContentType'].objects
ct.filter(app_label='news', model='news').update(app_label='main')
models = {
'auth.group': {