mirror of https://github.com/jumpserver/jumpserver
[Update] 修改迁移
parent
a5fc04e0ce
commit
d84ab1d215
|
@ -9,31 +9,47 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
('audits', '0004_operatelog_passwordchangelog_userloginlog'),
|
||||
('users', '0019_auto_20190304_1459'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
state_operations = [
|
||||
migrations.CreateModel(
|
||||
name='UserLoginLog',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
||||
('username', models.CharField(max_length=128, verbose_name='Username')),
|
||||
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal')], max_length=2, verbose_name='Login type')),
|
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True,
|
||||
serialize=False)),
|
||||
('username',
|
||||
models.CharField(max_length=128, verbose_name='Username')),
|
||||
('type',
|
||||
models.CharField(choices=[('W', 'Web'), ('T', 'Terminal')],
|
||||
max_length=2, verbose_name='Login type')),
|
||||
('ip', models.GenericIPAddressField(verbose_name='Login ip')),
|
||||
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
||||
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
||||
('mfa', models.SmallIntegerField(choices=[(0, 'Disabled'), (1, 'Enabled'), (2, '-')], default=2, verbose_name='MFA')),
|
||||
('reason', models.SmallIntegerField(choices=[(0, '-'), (1, 'Username/password check failed'), (2, 'MFA authentication failed'), (3, 'Username does not exist'), (4, 'Password expired')], default=0, verbose_name='Reason')),
|
||||
('status', models.BooleanField(choices=[(True, 'Success'), (False, 'Failed')], default=True, max_length=2, verbose_name='Status')),
|
||||
('datetime', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date login')),
|
||||
('city', models.CharField(blank=True, max_length=254, null=True,
|
||||
verbose_name='Login city')),
|
||||
('user_agent',
|
||||
models.CharField(blank=True, max_length=254, null=True,
|
||||
verbose_name='User agent')),
|
||||
('mfa', models.SmallIntegerField(
|
||||
choices=[(0, 'Disabled'), (1, 'Enabled'), (2, '-')],
|
||||
default=2, verbose_name='MFA')),
|
||||
('reason', models.SmallIntegerField(
|
||||
choices=[(0, '-'), (1, 'Username/password check failed'),
|
||||
(2, 'MFA authentication failed'),
|
||||
(3, 'Username does not exist'),
|
||||
(4, 'Password expired')], default=0,
|
||||
verbose_name='Reason')),
|
||||
('status', models.BooleanField(
|
||||
choices=[(True, 'Success'), (False, 'Failed')],
|
||||
default=True, max_length=2, verbose_name='Status')),
|
||||
('datetime',
|
||||
models.DateTimeField(default=django.utils.timezone.now,
|
||||
verbose_name='Date login')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-datetime', 'username'],
|
||||
},
|
||||
),
|
||||
]
|
||||
drop_table_sql = "DROP TABLE audits_userloginlog"
|
||||
rename_table_sql = "RENAME TABLE users_loginlog TO audits_userloginlog"
|
||||
table_exist = 'users_loginlog' in connection.introspection.table_names()
|
||||
if table_exist:
|
||||
operations.append(migrations.RunSQL(drop_table_sql))
|
||||
operations.append(migrations.RunSQL(rename_table_sql))
|
||||
|
||||
operations = [
|
||||
migrations.SeparateDatabaseAndState(state_operations=state_operations)
|
||||
]
|
||||
|
|
|
@ -12,9 +12,10 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('users', '0019_auto_20190304_1459'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
state_operations = [
|
||||
migrations.CreateModel(
|
||||
name='AccessKey',
|
||||
fields=[
|
||||
|
@ -49,3 +50,7 @@ class Migration(migrations.Migration):
|
|||
},
|
||||
),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.SeparateDatabaseAndState(state_operations=state_operations)
|
||||
]
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11 on 2018-01-11 05:35
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.manager
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Settings',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
|
||||
('value', models.TextField(verbose_name='Value')),
|
||||
('enabled', models.BooleanField(default=True, verbose_name='Enabled')),
|
||||
('comment', models.TextField(verbose_name='Comment')),
|
||||
],
|
||||
managers=[
|
||||
('configs', django.db.models.manager.Manager()),
|
||||
],
|
||||
),
|
||||
]
|
|
@ -0,0 +1,28 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11 on 2018-01-11 06:07
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('common', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='Settings',
|
||||
new_name='Setting',
|
||||
),
|
||||
migrations.AlterModelManagers(
|
||||
name='setting',
|
||||
managers=[
|
||||
],
|
||||
),
|
||||
migrations.AlterModelTable(
|
||||
name='setting',
|
||||
table='settings',
|
||||
),
|
||||
]
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11 on 2018-01-22 03:54
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('common', '0002_auto_20180111_1407'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='setting',
|
||||
name='category',
|
||||
field=models.CharField(default='default', max_length=128),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.1 on 2018-09-03 03:32
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('common', '0003_setting_category'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='setting',
|
||||
name='encrypted',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 2.1.7 on 2019-02-21 11:02
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('common', '0004_setting_encrypted'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='setting',
|
||||
options={'verbose_name': 'Setting'},
|
||||
),
|
||||
]
|
|
@ -0,0 +1,22 @@
|
|||
# Generated by Django 2.1.7 on 2019-03-04 07:15
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('common', '0005_auto_20190221_1902'),
|
||||
]
|
||||
|
||||
database_operations = [
|
||||
migrations.AlterModelTable('setting', 'settings_setting')
|
||||
]
|
||||
state_operations = [migrations.DeleteModel('setting')]
|
||||
|
||||
operations = [
|
||||
migrations.SeparateDatabaseAndState(
|
||||
database_operations=database_operations,
|
||||
state_operations=state_operations
|
||||
)
|
||||
]
|
|
@ -8,18 +8,23 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('common', '0006_auto_20190304_1515'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
state_operations = [
|
||||
migrations.CreateModel(
|
||||
name='Setting',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
|
||||
('id', models.AutoField(auto_created=True, primary_key=True,
|
||||
serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128, unique=True,
|
||||
verbose_name='Name')),
|
||||
('value', models.TextField(verbose_name='Value')),
|
||||
('category', models.CharField(default='default', max_length=128)),
|
||||
('category',
|
||||
models.CharField(default='default', max_length=128)),
|
||||
('encrypted', models.BooleanField(default=False)),
|
||||
('enabled', models.BooleanField(default=True, verbose_name='Enabled')),
|
||||
('enabled',
|
||||
models.BooleanField(default=True, verbose_name='Enabled')),
|
||||
('comment', models.TextField(verbose_name='Comment')),
|
||||
],
|
||||
options={
|
||||
|
@ -28,3 +33,7 @@ class Migration(migrations.Migration):
|
|||
},
|
||||
),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.SeparateDatabaseAndState(state_operations=state_operations)
|
||||
]
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
from django.db import migrations, connection
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("settings", "0001_initial"),
|
||||
]
|
||||
sql = "INSERT INTO setting(name, value, category, encrypted, enabled, comment) " \
|
||||
"SELECT name, value, category, encrypted, enabled, comment from settings"
|
||||
rename_sql = "RENAME TABLE settings TO settings_bak"
|
||||
settings_table_exist = 'settings' in connection.introspection.table_names()
|
||||
|
||||
operations = []
|
||||
if settings_table_exist:
|
||||
operations.append(migrations.RunSQL(sql))
|
||||
operations.append(migrations.RunSQL(rename_sql))
|
|
@ -122,5 +122,5 @@ class Setting(models.Model):
|
|||
settings.AUTHENTICATION_BACKENDS = old_setting
|
||||
|
||||
class Meta:
|
||||
db_table = "setting"
|
||||
db_table = "settings_setting"
|
||||
verbose_name = _("Setting")
|
||||
|
|
|
@ -4,8 +4,10 @@ from __future__ import unicode_literals
|
|||
|
||||
import common.utils
|
||||
from django.contrib.auth.hashers import make_password
|
||||
from django.conf import settings
|
||||
import django.contrib.auth.models
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
import uuid
|
||||
|
||||
|
@ -73,6 +75,40 @@ class Migration(migrations.Migration):
|
|||
('objects', django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='AccessKey',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name='AccessKeyID')),
|
||||
('secret', models.UUIDField(default=uuid.uuid4, editable=False, verbose_name='AccessKeySecret')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='access_key', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LoginLog',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
||||
('username', models.CharField(max_length=20, verbose_name='Username')),
|
||||
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal')], max_length=2, verbose_name='Login type')),
|
||||
('ip', models.GenericIPAddressField(verbose_name='Login ip')),
|
||||
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
||||
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
||||
('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date login')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-datetime', 'username'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PrivateToken',
|
||||
fields=[
|
||||
('key', models.CharField(max_length=40, primary_key=True, serialize=False, verbose_name='Key')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='auth_token', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Private Token',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UserGroup',
|
||||
fields=[
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
# Generated by Django 2.1.7 on 2019-02-28 10:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [('users', '0002_auto_20171225_1157'), ('users', '0003_auto_20180101_0046'), ('users', '0004_auto_20180125_1218'), ('users', '0005_auto_20180306_1804'), ('users', '0006_auto_20180411_1135'), ('users', '0007_auto_20180419_1036'), ('users', '0008_auto_20180425_1516'), ('users', '0009_auto_20180517_1537')]
|
||||
|
||||
dependencies = [
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='email',
|
||||
field=models.EmailField(max_length=128, unique=True, verbose_name='Email'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='name',
|
||||
field=models.CharField(max_length=128, verbose_name='Name'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='username',
|
||||
field=models.CharField(max_length=128, unique=True, verbose_name='Username'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='wechat',
|
||||
field=models.CharField(blank=True, max_length=128, verbose_name='Wechat'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='is_first_login',
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usergroup',
|
||||
name='created_by',
|
||||
field=models.CharField(blank=True, max_length=100, null=True),
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='user',
|
||||
options={'ordering': ['username'], 'verbose_name': 'User'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='usergroup',
|
||||
options={'ordering': ['name'], 'verbose_name': 'User group'},
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='user',
|
||||
old_name='secret_key_otp',
|
||||
new_name='otp_secret_key',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='enable_otp',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='otp_level',
|
||||
field=models.SmallIntegerField(choices=[(0, 'Disable'), (1, 'Enable'), (2, 'Force enable')], default=0, verbose_name='MFA'),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='user',
|
||||
name='otp_secret_key',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='_otp_secret_key',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usergroup',
|
||||
name='name',
|
||||
field=models.CharField(max_length=128, unique=True, verbose_name='Name'),
|
||||
),
|
||||
]
|
|
@ -1,77 +0,0 @@
|
|||
# Generated by Django 2.1.7 on 2019-02-28 10:20
|
||||
|
||||
import common.utils.django
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
# Functions from the following migrations need manual copying.
|
||||
# Move them and any dependencies into this file, then update the
|
||||
# RunPython operations to refer to the local versions:
|
||||
# users.migrations.0010_auto_20180606_1505
|
||||
|
||||
def remove_deleted_group(apps, schema_editor):
|
||||
db_alias = schema_editor.connection.alias
|
||||
group_model = apps.get_model("users", "UserGroup")
|
||||
group_model.objects.using(db_alias).filter(is_discard=True).delete()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [('users', '0010_auto_20180606_1505'), ('users', '0011_user_source'), ('users', '0012_auto_20180710_1641'), ('users', '0013_auto_20180807_1116'), ('users', '0014_auto_20180816_1652'), ('users', '0015_auto_20181105_1112'), ('users', '0016_auto_20181109_1505'), ('users', '0017_auto_20181123_1113'), ('users', '0018_auto_20190107_1912')]
|
||||
|
||||
dependencies = [
|
||||
('users', '0009_auto_20180517_1537'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(
|
||||
code=remove_deleted_group,
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='usergroup',
|
||||
name='discard_time',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='usergroup',
|
||||
name='is_discard',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='date_expired',
|
||||
field=models.DateTimeField(blank=True, db_index=True, default=common.utils.django.date_expired_default, null=True, verbose_name='Date expired'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='source',
|
||||
field=models.CharField(choices=[('local', 'Local'), ('ldap', 'LDAP/AD'), ('openid', 'OpenID'), ('radius', 'Radius')], default='local', max_length=30, verbose_name='Source'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='usergroup',
|
||||
name='org_id',
|
||||
field=models.CharField(blank=True, default=None, max_length=36, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='last_name',
|
||||
field=models.CharField(blank=True, max_length=150, verbose_name='last name'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usergroup',
|
||||
name='name',
|
||||
field=models.CharField(max_length=128, verbose_name='Name'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='usergroup',
|
||||
unique_together={('org_id', 'name')},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='usergroup',
|
||||
name='org_id',
|
||||
field=models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='date_password_last_updated',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date password last updated'),
|
||||
),
|
||||
]
|
|
@ -12,4 +12,19 @@ class Migration(migrations.Migration):
|
|||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='loginlog',
|
||||
name='mfa',
|
||||
field=models.SmallIntegerField(choices=[(0, 'Disabled'), (1, 'Enabled'), (2, '-')], default=2, verbose_name='MFA'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='loginlog',
|
||||
name='reason',
|
||||
field=models.SmallIntegerField(choices=[(0, '-'), (1, 'Username/password check failed'), (2, 'MFA authentication failed')], default=0, verbose_name='Reason'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='loginlog',
|
||||
name='status',
|
||||
field=models.BooleanField(choices=[(True, 'Success'), (False, 'Failed')], default=True, max_length=2, verbose_name='Status'),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -10,4 +10,14 @@ class Migration(migrations.Migration):
|
|||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='loginlog',
|
||||
name='reason',
|
||||
field=models.SmallIntegerField(choices=[(0, '-'), (1, 'Username/password check failed'), (2, 'MFA authentication failed'), (3, 'Username does not exist')], default=0, verbose_name='Reason'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='loginlog',
|
||||
name='username',
|
||||
field=models.CharField(max_length=128, verbose_name='Username'),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# Generated by Django 2.1.1 on 2018-11-23 03:13
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
@ -15,4 +17,14 @@ class Migration(migrations.Migration):
|
|||
name='date_password_last_updated',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date password last updated'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='accesskey',
|
||||
name='user',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='access_keys', to=settings.AUTH_USER_MODEL, verbose_name='User'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='loginlog',
|
||||
name='reason',
|
||||
field=models.SmallIntegerField(choices=[(0, '-'), (1, 'Username/password check failed'), (2, 'MFA authentication failed'), (3, 'Username does not exist'), (4, 'Password expired')], default=0, verbose_name='Reason'),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# Generated by Django 2.1.7 on 2019-03-04 06:59
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0018_auto_20190107_1912'),
|
||||
]
|
||||
|
||||
database_operations = [
|
||||
migrations.AlterModelTable(name='accesskey', table='autentication_accesskey'),
|
||||
migrations.AlterModelTable(name='privatetoken', table='autentication_privatetoken'),
|
||||
migrations.AlterModelTable(name='loginlog', table='audits_userloginlog'),
|
||||
]
|
||||
|
||||
state_operations = [
|
||||
migrations.DeleteModel('accesskey'),
|
||||
migrations.DeleteModel('privatetoken'),
|
||||
migrations.DeleteModel('loginlog'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.SeparateDatabaseAndState(
|
||||
database_operations=database_operations,
|
||||
state_operations=state_operations)
|
||||
]
|
Loading…
Reference in New Issue