def seed_default(self): migrator = MigrateCommand() migrator.stdout = self.stdout migrator.handle(database="default", verbosity=1, noinput=True, app_label=None, migration_name=None) if not Shop.objects.exists(): Shop.objects.create(name="Wintergear", identifier="default", status=ShopStatus.ENABLED) try: tax_class = TaxClass.objects.create(identifier="default", tax_rate=0) except: tax_class = TaxClass.objects.create(identifier="default") PaymentMethod.objects.create(identifier="default", name="Invoice", tax_class=tax_class) PaymentMethod.objects.create(identifier="bank_xfer", name="Bank Transfer", tax_class=tax_class) PaymentMethod.objects.create(identifier="cash", name="Cash (Pickup Only)", tax_class=tax_class) ShippingMethod.objects.create(identifier="default", name="Post Parcel", tax_class=tax_class) ShippingMethod.objects.create(identifier="pickup", name="Pickup at Helsinki Store", tax_class=tax_class) create_default_order_statuses() get_default_supplier() ProductType.objects.create(identifier="default") SalesUnit.objects.create(identifier="pcs", short_name="pcs", name="pieces") print("Seeded basic shop information") if not User.objects.filter(is_superuser=True).exists(): User.objects.create_superuser( username="******", email="*****@*****.**", password="******", ) print("Superuser created: admin / admin")
def run_migrations(self, schema_name, included_apps, options): self._notice("=== Running migrate for schema %s" % schema_name) connection.set_schema(schema_name) command = MigrateCommand() command.execute(*self.args, **options) connection.set_schema_to_public()
def get_migration_callback(): """ Reusing original migration callback """ migrate = MigrateCommand() parser = migrate.create_parser(argv[0], argv[1]) options = parser.parse_args(argv[2:]) migrate.verbosity = options.verbosity return migrate.migration_progress_callback
def seed_default(self): migrator = MigrateCommand() migrator.stdout = self.stdout migrator.handle(database="default", verbosity=1, noinput=True, app_label=None, migration_name=None) if not Shop.objects.exists(): Shop.objects.create(name="B2B", identifier="b2b", status=ShopStatus.ENABLED) try: tax_class = TaxClass.objects.create(identifier="default", tax_rate=0) except: tax_class = TaxClass.objects.create(identifier="default") PaymentMethod.objects.create(identifier="default", name="Invoice", tax_class=tax_class) PaymentMethod.objects.create(identifier="bank_xfer", name="Bank Transfer", tax_class=tax_class) PaymentMethod.objects.create(identifier="cash", name="Cash (Pickup Only)", tax_class=tax_class) ShippingMethod.objects.create(identifier="default", name="Post Parcel", tax_class=tax_class) ShippingMethod.objects.create(identifier="pickup", name="Pickup at Helsinki Store", tax_class=tax_class) create_default_order_statuses() get_default_supplier() ProductType.objects.create(identifier="default") SalesUnit.objects.create(identifier="pcs", short_name="pcs", name="pieces") print("Seeded basic shop information") if not User.objects.filter(is_superuser=True).exists(): User.objects.create_superuser( username="******", email="*****@*****.**", password="******", ) print("Superuser created: admin / admin")
def run_migrations(self, schema_name, included_apps): if int(self.options.get('verbosity', 1)) >= 1: self._notice("=== Running migrate for schema %s" % schema_name) connection.set_schema(schema_name) command = MigrateCommand() command.execute(*self.args, **self.options) connection.set_schema_to_public()
def add_arguments(self, parser): super(Command, self).add_arguments(parser) command = MigrateCommand() skip_checks_action = parser._option_string_actions.pop( '--skip-checks', None) if skip_checks_action: parser._remove_action(skip_checks_action) command.add_arguments(parser)
def run_migrations(self, schema_name, included_apps): if int(self.options.get('verbosity', 1)) >= 1: self._notice("=== Running migrate for schema %s" % schema_name) if not schema_exists(schema_name): raise MigrationSchemaMissing('Schema "{}" does not exist'.format( schema_name)) connection.set_schema(schema_name) command = MigrateCommand() command.execute(*self.args, **self.options) connection.set_schema_to_public()
def run_migrations(self, schema_name, included_apps): if int(self.options.get('verbosity', 1)) >= 1: self._notice("=== Running migrate for schema %s" % schema_name) if not schema_exists(schema_name): raise MigrationSchemaMissing( 'Schema "{}" does not exist'.format(schema_name)) connection.set_schema(schema_name) command = MigrateCommand() command.execute(*self.args, **self.options) connection.set_schema_to_public()
def run_migrations(self, schema_name, included_apps): self._notice("=== Running migrate for schema %s" % schema_name) connection.set_schema(schema_name) command = MigrateCommand() defaults = {} for opt in MigrateCommand.option_list: if opt.dest in self.options: defaults[opt.dest] = self.options[opt.dest] elif opt.default is NO_DEFAULT: defaults[opt.dest] = None else: defaults[opt.dest] = opt.default command.execute(*self.args, **defaults) connection.set_schema_to_public()
def seed_default(self): migrator = MigrateCommand() migrator.stdout = self.stdout migrator.handle(database="default", verbosity=1, noinput=True, app_label=None, migration_name=None) if not Shop.objects.exists(): shop = Shop.objects.create(name="B2B", identifier="default", status=ShopStatus.ENABLED) try: tax_class = TaxClass.objects.create(identifier="default", tax_rate=0) except: tax_class = TaxClass.objects.create(identifier="default") custom_carrier = CustomCarrier.objects.first() custom_carrier.create_service( choice_identifier="manual", identifier="default", shop=shop, enabled=True, name="Post Parcel", tax_class=tax_class ) payment_processor = CustomPaymentProcessor.objects.first() payment_processor.create_service(choice_identifier="manual", identifier="default", shop=shop, enabled=True, name="Invoice", tax_class=tax_class ) create_default_order_statuses() get_default_supplier() ProductType.objects.create(identifier="default") SalesUnit.objects.create(identifier="pcs", short_name="pcs", name="pieces") print("Seeded basic shop information") if not User.objects.filter(is_superuser=True).exists(): User.objects.create_superuser( username="******", email="*****@*****.**", password="******", ) print("Superuser created: admin / admin")
def handle(self, *args, **kwargs): migrate = MigrateCommand() options = { 'app_label': None, 'migration_name': None, 'interactive': True, 'fake': False, 'fake_initial': False, 'run_syncdb': False, 'plan': False, } options.update(kwargs) for database in settings.DATABASES: options['database'] = database if options['verbosity'] >= 1: self.stdout.write(self.style.MIGRATE_HEADING('Database:')) self.stdout.write(' ' + database) migrate.handle(*args, **options) if options['verbosity'] >= 1: self.stdout.write('')
def run_migrations(self, schema_name, included_apps): self._notice("=== Running migrate for schema %s" % schema_name) connection.set_schema(schema_name, include_public=False) apps.app_configs = OrderedDict() apps.clear_cache() apps.set_installed_apps(included_apps) command = MigrateCommand() defaults = {} for opt in MigrateCommand.option_list: if opt.dest in self.options: defaults[opt.dest] = self.options[opt.dest] elif opt.default is NO_DEFAULT: defaults[opt.dest] = None else: defaults[opt.dest] = opt.default command.execute(*self.args, **defaults) connection.set_schema('public', include_public=True) apps.app_configs = OrderedDict() apps.clear_cache() apps.set_installed_apps(settings.SHARED_APPS)
def handle(self, *args, **options): verbosity = options['verbosity'] database = options['database'] flush = Flush() flush.handle(**options) if verbosity > 0: self.stdout.write(self.style.SUCCESS('Database flushed.')) for config in apps.app_configs.values(): if path.split(path.split(config.path)[0])[1] == 'babybuddy': migrate = Migrate() options['app_label'] = config.name options['migration_name'] = 'zero' try: migrate.handle(*args, **options) except CommandError: # Ignore apps without migrations. pass migrate = Migrate() options['app_label'] = None options['migration_name'] = None migrate.handle(*args, **options) self.UserModel._default_manager.db_manager(database).create_superuser( **{ self.UserModel.USERNAME_FIELD: 'admin', 'email': '*****@*****.**', 'password': '******' } ) if options['verbosity'] > 0: self.stdout.write('Superuser created successfully.') fake = Fake() fake.handle(*args, **options) if verbosity > 0: self.stdout.write(self.style.SUCCESS('Database reset complete.'))
def add_arguments(self, parser): super(MigrateSchemasCommand, self).add_arguments(parser) command = MigrateCommand() command.add_arguments(parser)
'level': 'DEBUG', 'class': 'logging.StreamHandler', }, }, 'loggers': { # We override only this one to avoid logspam # while running tests. Django warnings are # stil shown. 'binder': { 'handlers': ['console'], 'level': 'ERROR', }, } } }) setup() # Do the dance to ensure the models are synched to the DB. # This saves us from having to include migrations from django.core.management.commands.migrate import Command as MigrationCommand from django.db import connections from django.db.migrations.executor import MigrationExecutor # This is oh so hacky.... cmd = MigrationCommand() cmd.verbosity = 0 connection = connections['default'] executor = MigrationExecutor(connection) cmd.sync_apps(connection, executor.loader.unmigrated_apps)
def add_arguments(self, parser): super().add_arguments(parser) MigrateCommand.add_arguments(self, parser)
def migrate(params=None): command = MigrateCommand() parser = command.create_parser('manage.py', 'migrate') options = parser.parse_args(params or []) cmd_options = vars(options) return command.execute(**cmd_options)