本文整理汇总了Python中south.migration.base.Migrations.calculate_dependencies方法的典型用法代码示例。如果您正苦于以下问题:Python Migrations.calculate_dependencies方法的具体用法?Python Migrations.calculate_dependencies怎么用?Python Migrations.calculate_dependencies使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类south.migration.base.Migrations
的用法示例。
在下文中一共展示了Migrations.calculate_dependencies方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: migrate_app
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def migrate_app(migrations, target_name=None, merge=False, fake=False, db_dry_run=False, yes=False, verbosity=0, load_initial_data=False, skip=False, database=DEFAULT_DB_ALIAS, delete_ghosts=False, ignore_ghosts=False, interactive=False):
app_label = migrations.app_label()
verbosity = int(verbosity)
# Fire off the pre-migrate signal
pre_migrate.send(None, app=app_label)
# If there aren't any, quit quizically
if not migrations:
print "? You have no migrations for the '%s' app. You might want some." % app_label
return
# Load the entire dependency graph
Migrations.calculate_dependencies()
# Check there's no strange ones in the database
applied = MigrationHistory.objects.filter(applied__isnull=False)
# If we're using a different database, use that
if database != DEFAULT_DB_ALIAS:
applied = applied.using(database)
south.db.db = south.db.dbs[database]
# We now have to make sure the migrations are all reloaded, as they'll
# have imported the old value of south.db.db.
Migrations.invalidate_all_modules()
south.db.db.debug = (verbosity > 1)
applied = check_migration_histories(applied, delete_ghosts, ignore_ghosts)
# Guess the target_name
target = migrations.guess_migration(target_name)
if verbosity:
if target_name not in ('zero', None) and target.name() != target_name:
print " - Soft matched migration %s to %s." % (target_name,
target.name())
print "Running migrations for %s:" % app_label
# Get the forwards and reverse dependencies for this target
direction, problems, workplan = get_direction(target, applied, migrations,
verbosity, interactive)
if problems and not (merge or skip):
raise exceptions.InconsistentMigrationHistory(problems)
# Perform the migration
migrator = get_migrator(direction, db_dry_run, fake, load_initial_data)
if migrator:
migrator.print_title(target)
success = migrator.migrate_many(target, workplan, database)
# Finally, fire off the post-migrate signal
if success:
post_migrate.send(None, app=app_label)
elif verbosity:
# Say there's nothing.
print '- Nothing to migrate.'
# If we have initial data enabled, and we're at the most recent
# migration, do initial data.
# Note: We use a fake Forwards() migrator here. It's never used really.
migrator = LoadInitialDataMigrator(migrator=Forwards(verbosity=verbosity))
migrator.load_initial_data(target)
# Send signal.
post_migrate.send(None, app=app_label)
示例2: test_plans
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def test_plans(self):
Migrations.calculate_dependencies()
circular_a = Migrations("circular_a")
circular_b = Migrations("circular_b")
self.assertRaises(exceptions.CircularDependency, circular_a[-1].forwards_plan)
self.assertRaises(exceptions.CircularDependency, circular_b[-1].forwards_plan)
self.assertRaises(exceptions.CircularDependency, circular_a[-1].backwards_plan)
self.assertRaises(exceptions.CircularDependency, circular_b[-1].backwards_plan)
示例3: test_plans
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def test_plans(self):
Migrations.calculate_dependencies(force=True)
circular_a = Migrations('circular_a')
circular_b = Migrations('circular_b')
self.assertRaises(
exceptions.CircularDependency,
circular_a[-1].forwards_plan,
)
self.assertRaises(
exceptions.CircularDependency,
circular_b[-1].forwards_plan,
)
self.assertRaises(
exceptions.CircularDependency,
circular_a[-1].backwards_plan,
)
self.assertRaises(
exceptions.CircularDependency,
circular_b[-1].backwards_plan,
)
示例4: setUp
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def setUp(self):
super(TestMigration, self).setUp()
self.fakeapp = Migrations('fakeapp')
self.otherfakeapp = Migrations('otherfakeapp')
Migrations.calculate_dependencies(force=True)
示例5: setUp
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def setUp(self):
super(TestMigration, self).setUp()
self.fakeapp = Migrations("fakeapp")
self.otherfakeapp = Migrations("otherfakeapp")
Migrations.calculate_dependencies()
示例6: migrate_app
# 需要导入模块: from south.migration.base import Migrations [as 别名]
# 或者: from south.migration.base.Migrations import calculate_dependencies [as 别名]
def migrate_app(migrations, target_name=None, merge=False, fake=False, db_dry_run=False, yes=False, verbosity=0, load_initial_data=False, skip=False, database=DEFAULT_DB_ALIAS, delete_ghosts=False, ignore_ghosts=False, interactive=False):
app_label = migrations.app_label()
verbosity = int(verbosity)
# Fire off the pre-migrate signal
pre_migrate.send(None, app=app_label)
# If there aren't any, quit quizically
if not migrations:
print "? You have no migrations for the '%s' app. You might want some." % app_label
return
# Load the entire dependency graph
Migrations.calculate_dependencies()
# Check there's no strange ones in the database
applied_all = MigrationHistory.objects.filter(applied__isnull=False).order_by('applied').using(database)
applied = applied_all.filter(app_name=app_label).using(database)
south.db.db = south.db.dbs[database]
Migrations.invalidate_all_modules()
south.db.db.debug = (verbosity > 1)
if target_name == 'current-1':
if applied.count() > 1:
previous_migration = applied[applied.count() - 2]
if verbosity:
print 'previous_migration: %s (applied: %s)' % (previous_migration.migration, previous_migration.applied)
target_name = previous_migration.migration
else:
if verbosity:
print 'previous_migration: zero'
target_name = 'zero'
elif target_name == 'current+1':
try:
first_unapplied_migration = get_unapplied_migrations(migrations, applied).next()
target_name = first_unapplied_migration.name()
except StopIteration:
target_name = None
applied_all = check_migration_histories(applied_all, delete_ghosts, ignore_ghosts)
# Guess the target_name
target = migrations.guess_migration(target_name)
if verbosity:
if target_name not in ('zero', None) and target.name() != target_name:
print " - Soft matched migration %s to %s." % (target_name,
target.name())
print "Running migrations for %s:" % app_label
# Get the forwards and reverse dependencies for this target
direction, problems, workplan = get_direction(target, applied_all, migrations,
verbosity, interactive)
if problems and not (merge or skip):
raise exceptions.InconsistentMigrationHistory(problems)
# Perform the migration
migrator = get_migrator(direction, db_dry_run, fake, load_initial_data)
if migrator:
migrator.print_title(target)
success = migrator.migrate_many(target, workplan, database)
# Finally, fire off the post-migrate signal
if success:
post_migrate.send(None, app=app_label)
else:
if verbosity:
# Say there's nothing.
print '- Nothing to migrate.'
# If we have initial data enabled, and we're at the most recent
# migration, do initial data.
# Note: We use a fake Forwards() migrator here. It's never used really.
if load_initial_data:
migrator = LoadInitialDataMigrator(migrator=Forwards(verbosity=verbosity))
migrator.load_initial_data(target, db=database)
# Send signal.
post_migrate.send(None, app=app_label)