From 5def7b81b9a2dc2a2145e2366371838a2d33f028 Mon Sep 17 00:00:00 2001 From: bashmak Date: Thu, 15 Mar 2018 19:26:56 +0300 Subject: [PATCH] 1 --- migrate_to_0.2.py | 69 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 18 deletions(-) diff --git a/migrate_to_0.2.py b/migrate_to_0.2.py index 594d434..04bc032 100755 --- a/migrate_to_0.2.py +++ b/migrate_to_0.2.py @@ -6,6 +6,13 @@ import shutil from json import dump import django + +''' +Some permissions is not migrates, all admins is superuser +after migrate. +''' + + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djing.settings") from django.db.models import fields as django_fields @@ -64,7 +71,6 @@ def dump_groups(): def dump_abonapp(): from abonapp import models - # res += get_fixture_from_unchanget_model('abonapp.abonlog', models.AbonLog) res = get_fixture_from_unchanget_model('abonapp.abontariff', models.AbonTariff) @@ -72,6 +78,8 @@ def dump_abonapp(): res += get_fixture_from_unchanget_model('abonapp.extrafieldsmodel', models.ExtraFieldsModel) + # res += get_fixture_from_unchanget_model('abonapp.abonlog', models.AbonLog) + print('abonapp.abon') res += [{ 'model': 'abonapp.abon', @@ -157,7 +165,8 @@ def dump_accounts(): 'is_admin': up.is_admin, 'telephone': up.telephone, 'password': up.password, - 'last_login': up.last_login + 'last_login': up.last_login, + 'is_superuser': up.is_admin } } for up in models.UserProfile.objects.all()] @@ -214,15 +223,38 @@ def dump_task_app(): def dump_auth(): from django.contrib.auth import models - res = get_fixture_from_unchanget_model('auth.group', models.Group) + from django.contrib.contenttypes.models import ContentType + res = get_fixture_from_unchanget_model('contenttypes.contenttype', ContentType) + res += get_fixture_from_unchanget_model('auth.group', models.Group) res += get_fixture_from_unchanget_model('auth.permission', models.Permission) return res def dump_guardian(): from guardian import models - res = get_fixture_from_unchanget_model('guardian.groupobjectpermission', models.GroupObjectPermission) - res += get_fixture_from_unchanget_model('guardian.userobjectpermission', models.UserObjectPermission) + print('guardian.groupobjectpermission') + res = [{ + 'model': 'guardian.groupobjectpermission', + 'pk': gp.pk, + 'fields': { + 'group': gp.group.pk, + 'permission': gp.permission.pk, + 'content_type': gp.content_type.pk, + 'object_pk': str(gp.object_pk), + 'content_object': gp.content_object.pk + } + } for gp in models.GroupObjectPermission.objects.all()] + print('guardian.userobjectpermission') + res += [{ + 'model': 'guardian.userobjectpermission', + 'pk': up.pk, + 'fields': { + 'permission': up.permission.pk, + 'content_type': up.content_type.pk, + 'object_pk': str(up.object_pk), + 'user': up.user.pk + } + } for up in models.UserObjectPermission.objects.all()] return res @@ -252,8 +284,8 @@ def make_migration(): appdump(['fixtures', 'chatbot', 'chatbot_fixture.json'], dump_chatbot) appdump(['fixtures', 'mapapp', 'map_fixture.json'], dump_map) appdump(['fixtures', 'taskapp', 'task_fixture.json'], dump_task_app) - appdump(['fixtures', 'accounts_app', 'auth_fixture.json'], dump_auth) - appdump(['fixtures', 'accounts_app', 'guardian_fixture.json'], dump_guardian) + # appdump(['fixtures', 'accounts_app', 'auth_fixture.json'], dump_auth) + # appdump(['fixtures', 'accounts_app', 'guardian_fixture.json'], dump_guardian) def move_to_fixtures_dirs(): @@ -273,21 +305,22 @@ def move_to_fixtures_dirs(): def apply_fixtures(): from django.core.management import execute_from_command_line from accounts_app.models import UserProfile - from django.contrib.auth import models + #from django.contrib.auth import models UserProfile.objects.filter(username='AnonymousUser').delete() - print('clearing auth.group') - models.Group.objects.all().delete() - print('clearing auth.permission') - models.Permission.objects.all().delete() + #print('clearing auth.group') + #models.Group.objects.all().delete() + #print('clearing auth.permission') + #models.Permission.objects.all().delete() - print('./manage.py loaddata -v2 ...') - execute_from_command_line([sys.argv[0], 'loaddata', '-v', '2', + fixtures_names = [ 'groups_fixture.json', 'tariffs_fixture.json', 'photos_fixture.json', 'devs_fixture.json', 'accounts_fixture.json', 'abon_fixture.json', - 'chatbot_fixture.json', 'map_fixture.json', 'task_fixture.json', - 'auth_fixture.json', 'guardian_fixture.json' - ]) + 'chatbot_fixture.json', 'map_fixture.json', 'task_fixture.json' + ] + # 'auth_fixture.json', 'guardian_fixture.json' + print('./manage.py loaddata ' + ', '.join(fixtures_names)) + execute_from_command_line([sys.argv[0], 'loaddata'] + fixtures_names) if __name__ == '__main__': @@ -299,7 +332,7 @@ if __name__ == '__main__': django.setup() move_to_fixtures_dirs() apply_fixtures() - os.remove('fixtures') + shutil.rmtree('fixtures') elif choice == 'makedump': django.setup() make_migration()