Browse Source

added finapp to upgrade script

devel
Dmitry Novikov 6 years ago
parent
commit
dc1fa5a725
  1. 82
      migrate2v2_dump.py

82
migrate2v2_dump.py

@ -84,10 +84,14 @@ class BatchSaveStreamList(list):
return 1 return 1
def batch_save(fname, *args, **kwargs):
def batch_save(app_label: str, fname: str, *args, **kwargs):
sa = BatchSaveStreamList(*args, **kwargs) sa = BatchSaveStreamList(*args, **kwargs)
print(fname)
with open(fname, 'w') as f:
fixt_dir = os.path.join('fixtures', app_label, 'fixtures')
if not os.path.isdir(fixt_dir):
os.makedirs(fixt_dir, mode=0o750)
full_path = os.path.join(fixt_dir, fname)
print(full_path)
with open(full_path, 'w') as f:
dump(sa, f, ensure_ascii=False, indent=2, cls=DjangoJSONEncoder) dump(sa, f, ensure_ascii=False, indent=2, cls=DjangoJSONEncoder)
@ -96,14 +100,15 @@ def batch_save(fname, *args, **kwargs):
def dump_groups(): def dump_groups():
from group_app.models import Group from group_app.models import Group
batch_save("groups.json", Group.objects.all(), 'groupapp.group')
batch_save('groupapp', "groups.json", Group.objects.all(), 'groupapp.group')
def dump_accounts(): def dump_accounts():
from accounts_app.models import UserProfile, BaseAccount, UserProfileLog from accounts_app.models import UserProfile, BaseAccount, UserProfileLog
batch_save('accounts_baseaccount.json', BaseAccount.objects.exclude(username='AnonymousUser'), 'profiles.baseaccount',
app_label = 'profiles'
batch_save(app_label, 'accounts_app', 'accounts_baseaccount.json', BaseAccount.objects.exclude(username='AnonymousUser'), 'profiles.baseaccount',
except_fields=['groups', 'user_permissions']) except_fields=['groups', 'user_permissions'])
batch_save('accounts_userprofile.json', UserProfile.objects.exclude(username='AnonymousUser'), 'profiles.userprofile',
batch_save(app_label, 'accounts_userprofile.json', UserProfile.objects.exclude(username='AnonymousUser'), 'profiles.userprofile',
except_fields=['groups', 'user_permissions']) except_fields=['groups', 'user_permissions'])
do_type_map = { do_type_map = {
'cusr': 1, 'dusr': 2, 'cusr': 1, 'dusr': 2,
@ -111,7 +116,7 @@ def dump_accounts():
'cnas': 5, 'dnas': 6, 'cnas': 5, 'dnas': 6,
'csrv': 7, 'dsrv': 8 'csrv': 7, 'dsrv': 8
} }
batch_save('accounts_userprofilelog.json', UserProfileLog.objects.all(), 'profiles.userprofilelog',
batch_save(app_label, 'accounts_userprofilelog.json', UserProfileLog.objects.all(), 'profiles.userprofilelog',
except_fields=['meta_info'], except_fields=['meta_info'],
choice_list_map={ choice_list_map={
'do_type': do_type_map 'do_type': do_type_map
@ -120,15 +125,17 @@ def dump_accounts():
def dump_messenger(): def dump_messenger():
from messenger.models import Messenger, ViberMessenger, ViberMessage, ViberSubscriber from messenger.models import Messenger, ViberMessenger, ViberMessage, ViberSubscriber
batch_save("messenger.json", Messenger.objects.all(), 'messenger.messenger')
batch_save("vibermessenger.json", ViberMessenger.objects.all(), 'messenger.vibermessenger')
batch_save("vibermessage.json", ViberMessage.objects.all(), 'messenger.vibermessage')
batch_save("vibersubscriber.json", ViberSubscriber.objects.all(), 'messenger.vibersubscriber')
app_label = 'messenger'
batch_save(app_label, "messenger.json", Messenger.objects.all(), 'messenger.messenger')
batch_save(app_label, "vibermessenger.json", ViberMessenger.objects.all(), 'messenger.vibermessenger')
batch_save(app_label, "vibermessage.json", ViberMessage.objects.all(), 'messenger.vibermessage')
batch_save(app_label, "vibersubscriber.json", ViberSubscriber.objects.all(), 'messenger.vibersubscriber')
def dump_services(): def dump_services():
from tariff_app.models import Tariff, PeriodicPay from tariff_app.models import Tariff, PeriodicPay
batch_save("services.json", Tariff.objects.all(), 'services.service', field_name_map={
app_label = 'services'
batch_save(app_label, "services.json", Tariff.objects.all(), 'services.service', field_name_map={
'speedIn': 'speed_in', 'speedIn': 'speed_in',
'speedOut': 'speed_out', 'speedOut': 'speed_out',
'amount': 'cost' 'amount': 'cost'
@ -140,7 +147,7 @@ def dump_services():
'Dl': 3 'Dl': 3
} }
}) })
batch_save("services_periodicpay.json", PeriodicPay.objects.all(), 'services.periodicpay', choice_list_map={
batch_save(app_label, "services_periodicpay.json", PeriodicPay.objects.all(), 'services.periodicpay', choice_list_map={
'calc_type': { 'calc_type': {
'df': 0, 'df': 0,
'cs': 1 'cs': 1
@ -150,7 +157,8 @@ def dump_services():
def dump_gateways(): def dump_gateways():
from gw_app.models import NASModel from gw_app.models import NASModel
batch_save("gateways.json", NASModel.objects.all(), 'gateways.gateway', field_name_map={
app_label = 'gateways'
batch_save(app_label, "gateways.json", NASModel.objects.all(), 'gateways.gateway', field_name_map={
'nas_type': 'gw_type', 'nas_type': 'gw_type',
'default': 'is_default' 'default': 'is_default'
}, choice_list_map={ }, choice_list_map={
@ -162,7 +170,8 @@ def dump_gateways():
def dump_devices(): def dump_devices():
from devapp.models import Device, Port from devapp.models import Device, Port
batch_save("devices.json", Device.objects.all(), 'devices.device', field_name_map={
app_label = 'devices'
batch_save(app_label, "devices.json", Device.objects.all(), 'devices.device', field_name_map={
'devtype': 'dev_type' 'devtype': 'dev_type'
}, choice_list_map={ }, choice_list_map={
'devtype': { 'devtype': {
@ -178,7 +187,7 @@ def dump_devices():
'dwn': 3 'dwn': 3
} }
}) })
batch_save('devices_port.json', Port.objects.all(), 'devices.port')
batch_save(app_label, 'devices_port.json', Port.objects.all(), 'devices.port')
def dump_customers(): def dump_customers():
@ -187,41 +196,43 @@ def dump_customers():
PassportInfo, InvoiceForPayment, AbonRawPassword, PassportInfo, InvoiceForPayment, AbonRawPassword,
AdditionalTelephone, PeriodicPayForId AdditionalTelephone, PeriodicPayForId
) )
batch_save('customer.json', Abon.objects.exclude(username='AnonymousUser'), 'customers.customer', field_name_map={
app_label = 'customers'
batch_save(app_label, 'customer.json', Abon.objects.exclude(username='AnonymousUser'), 'customers.customer', field_name_map={
'current_tariff': 'current_service', 'current_tariff': 'current_service',
'ballance': 'balance', 'ballance': 'balance',
'nas': 'gateway', 'nas': 'gateway',
'autoconnect_service': 'auto_renewal_service', 'autoconnect_service': 'auto_renewal_service',
'last_connected_tariff': 'last_connected_service' 'last_connected_tariff': 'last_connected_service'
}, except_fields=['groups', 'user_permissions']) }, except_fields=['groups', 'user_permissions'])
batch_save('customers_log.json', AbonLog.objects.all(), 'customers.customerlog', field_name_map={
batch_save(app_label, 'customers_log.json', AbonLog.objects.all(), 'customers.customerlog', field_name_map={
'abon': 'customer', 'abon': 'customer',
'amount': 'cost' 'amount': 'cost'
}) })
batch_save('customers_service.json', AbonTariff.objects.all(), 'customers.customerservice', field_name_map={
batch_save(app_label, 'customers_service.json', AbonTariff.objects.all(), 'customers.customerservice', field_name_map={
'tariff': 'service', 'tariff': 'service',
'time_start': 'start_time' 'time_start': 'start_time'
}) })
batch_save('customers_street.json', AbonStreet.objects.all(), 'customers.customerstreet')
batch_save('customers_passport.json', PassportInfo.objects.all(), 'customers.passportinfo', field_name_map={
batch_save(app_label, 'customers_street.json', AbonStreet.objects.all(), 'customers.customerstreet')
batch_save(app_label, 'customers_passport.json', PassportInfo.objects.all(), 'customers.passportinfo', field_name_map={
'abon': 'customer' 'abon': 'customer'
}) })
batch_save('customers_inv.json', InvoiceForPayment.objects.all(), 'customers.invoiceforpayment', field_name_map={
batch_save(app_label, 'customers_inv.json', InvoiceForPayment.objects.all(), 'customers.invoiceforpayment', field_name_map={
'abon': 'customer', 'abon': 'customer',
'amount': 'cost' 'amount': 'cost'
}) })
batch_save('customers_passw.json', AbonRawPassword.objects.all(), 'customers.customerrawpassword', field_name_map={
batch_save(app_label, 'customers_passw.json', AbonRawPassword.objects.all(), 'customers.customerrawpassword', field_name_map={
'account': 'customer' 'account': 'customer'
}) })
batch_save('customers_tels.json', AdditionalTelephone.objects.all(), 'customers.additionaltelephone', field_name_map={
batch_save(app_label, 'customers_tels.json', AdditionalTelephone.objects.all(), 'customers.additionaltelephone', field_name_map={
'abon': 'customer' 'abon': 'customer'
}) })
batch_save('customers_tels.json', PeriodicPayForId.objects.all(), 'customers.periodicpayforid')
batch_save(app_label, 'customers_tels.json', PeriodicPayForId.objects.all(), 'customers.periodicpayforid')
def dump_networks(): def dump_networks():
from ip_pool.models import NetworkModel from ip_pool.models import NetworkModel
batch_save('nets.json', NetworkModel.objects.all(), 'networks.networkmodel', choice_list_map={
app_label = 'networks'
batch_save(app_label, 'nets.json', NetworkModel.objects.all(), 'networks.networkmodel', choice_list_map={
'kind': { 'kind': {
'inet': 1, 'inet': 1,
'guest': 2, 'guest': 2,
@ -234,7 +245,8 @@ def dump_networks():
def dump_tasks(): def dump_tasks():
from taskapp.models import Task, ExtraComment, ChangeLog from taskapp.models import Task, ExtraComment, ChangeLog
batch_save('task.json', Task.objects.all(), 'tasks.task', field_name_map={
app_label = 'tasks'
batch_save(app_label, 'task.json', Task.objects.all(), 'tasks.task', field_name_map={
'abon': 'customer' 'abon': 'customer'
}, except_fields=['attachment'], choice_list_map={ }, except_fields=['attachment'], choice_list_map={
'priority': { 'priority': {
@ -257,8 +269,8 @@ def dump_tasks():
'ot': 12 'ot': 12
} }
}) })
batch_save('task_comments.json', ExtraComment.objects.all(), 'tasks.extracomment')
batch_save('task_log.json', ChangeLog.objects.all(), 'tasks.changelog', choice_list_map={
batch_save(app_label, 'task_comments.json', ExtraComment.objects.all(), 'tasks.extracomment')
batch_save(app_label, 'task_log.json', ChangeLog.objects.all(), 'tasks.changelog', choice_list_map={
'act_type': { 'act_type': {
'e': 1, 'c': 2, 'e': 1, 'c': 2,
'd': 3, 'f': 4, 'b': 5 'd': 3, 'f': 4, 'b': 5
@ -266,10 +278,20 @@ def dump_tasks():
}) })
def dump_fin():
from finapp.models import PayAllTimeGateway, AllTimePayLog
app_label = 'tasks'
batch_save(app_label, 'fin_gws.json', PayAllTimeGateway.objects.all(), 'fin_app.payalltimegateway')
batch_save(app_label, 'fin_logs.json', AllTimePayLog.objects.all(), 'fin_app.alltimepaylog', field_name_map={
'abon': 'customer'
})
all_migrs = ( all_migrs = (
dump_groups, dump_accounts, dump_messenger, dump_groups, dump_accounts, dump_messenger,
dump_services, dump_gateways, dump_devices, dump_services, dump_gateways, dump_devices,
dump_customers, dump_networks, dump_tasks
dump_customers, dump_networks, dump_tasks,
dump_fin
) )
if __name__ == '__main__': if __name__ == '__main__':

Loading…
Cancel
Save