Compare commits

..

No commits in common. "985f7c7bcd652edfba321977252b36f3ac93a61b" and "8758cb5238de7202598fece86bbd1269c7f0b974" have entirely different histories.

4 changed files with 10 additions and 18 deletions

View File

@ -82,12 +82,13 @@ class BulkCreateManager(object):
model_key = model_class._meta.label model_key = model_class._meta.label
# check for mutli-table inheritance it happens # check for mutli-table inheritance it happens
# if model_class is a grand-child of PolymorphicModel # if model_class is a grand-child of PolymorphicModel
if model_class.__base__.__base__ is PolymorphicModel: if model_class.__base__ is not PolymorphicModel and model_class.__base__.__base__ is PolymorphicModel:
self._commit(model_class.__base__) self._commit(model_class.__base__)
with transaction.atomic(): with transaction.atomic():
for obj in self._create_queues[model_key]: for obj in self._create_queues[model_key]:
obj.save_base(raw=True) obj.save_base(raw=True)
else: else:
# ensure that parents models exists
model_class.objects.bulk_create(self._create_queues[model_key]) model_class.objects.bulk_create(self._create_queues[model_key])
self._create_queues[model_key] = [] self._create_queues[model_key] = []

View File

@ -176,10 +176,10 @@ class Command(ImportCommand):
bulk_mgr = BulkCreateManager(chunk_size=chunk_size) bulk_mgr = BulkCreateManager(chunk_size=chunk_size)
pk_alias = Alias.objects.order_by('-id').first().id + 1 pk_alias = Alias.objects.order_by('-id').first().id + 1
for idx, row in enumerate(cur): for idx, row in enumerate(cur):
self.update_line(idx, n, row["alias"])
alias_name = row["alias"] alias_name = row["alias"]
alias_name = (alias_name[:252] + '...') if len(alias_name) > 255 else alias_name alias_name = (alias_name[:252] + '...') if len(alias_name) > 255 else alias_name
alias_norm = Alias.normalize(alias_name) alias_norm = Alias.normalize(alias_name)
self.update_line(idx, n, alias_norm)
# clean pseudo (normalized pseudo must be unique) # clean pseudo (normalized pseudo must be unique)
if alias_norm in ALIAS_SET: if alias_norm in ALIAS_SET:
continue continue

View File

@ -22,10 +22,10 @@ class Command(ImportCommand):
@timed @timed
@transaction.atomic @transaction.atomic
def import_activities(self, cur, chunk): def import_activities(self, cur, chunk_size):
cur.execute("SELECT * FROM activites ORDER by id") cur.execute("SELECT * FROM activites ORDER by id")
n = cur.rowcount n = cur.rowcount
bulk_mgr = BulkCreateManager(chunk_size=chunk) bulk_mgr = BulkCreateManager(chunk_size=chunk_size)
activity_type_id = ActivityType.objects.get(name="Pot").pk # Need to be fixed manually activity_type_id = ActivityType.objects.get(name="Pot").pk # Need to be fixed manually
kfet = Club.objects.get(name="Kfet") kfet = Club.objects.get(name="Kfet")
pk_activity = 1 pk_activity = 1
@ -64,8 +64,8 @@ class Command(ImportCommand):
@timed @timed
@transaction.atomic @transaction.atomic
def import_guest(self, cur, chunk): def import_activities_entries(self, cur):
bulk_mgr = BulkCreateManager(chunk_size=chunk) bulk_mgr = BulkCreateManager()
cur.execute("SELECT * FROM invites ORDER by id") cur.execute("SELECT * FROM invites ORDER by id")
n = cur.rowcount n = cur.rowcount
for idx, row in enumerate(cur): for idx, row in enumerate(cur):
@ -79,11 +79,6 @@ class Command(ImportCommand):
} }
bulk_mgr.add(Guest(**obj_dict)) bulk_mgr.add(Guest(**obj_dict))
bulk_mgr.done() bulk_mgr.done()
@timed
@transaction.atomic
def import_activities_entries(self, cur, chunk):
bulk_mgr = BulkCreateManager(chunk_size=chunk)
cur.execute("SELECT * FROM entree_activites ORDER by id") cur.execute("SELECT * FROM entree_activites ORDER by id")
n = cur.rowcount n = cur.rowcount
for idx, row in enumerate(cur): for idx, row in enumerate(cur):
@ -91,8 +86,8 @@ class Command(ImportCommand):
obj_dict = { obj_dict = {
"activity_id": MAP_ACTIVITY[row["activite"]], "activity_id": MAP_ACTIVITY[row["activite"]],
"time": make_aware(row["heure_entree"]), "time": make_aware(row["heure_entree"]),
"note_id": self.MAP_IDBDE[row["responsable"] if row['est_invite'] else row["idbde"]], "note_id": self.MAP_IDBDE[row["responsable"]] if row['est_invite'] else row["idbde"],
"guest_id": self.MAP_IDBDE[row["idbde"]] if row['est_invite'] else None, "guest_id": row["idbde"] if row['est_invite'] else None,
} }
bulk_mgr.add(Entry(**obj_dict)) bulk_mgr.add(Entry(**obj_dict))
bulk_mgr.done() bulk_mgr.done()
@ -107,5 +102,4 @@ class Command(ImportCommand):
if kwargs["map"]: if kwargs["map"]:
self.load_map(kwargs["map"]) self.load_map(kwargs["map"])
self.import_activities(cur, kwargs["chunk"]) self.import_activities(cur, kwargs["chunk"])
self.import_guest(cur, kwargs["chunk"]) self.import_activities_entries(cur)
self.import_activities_entries(cur, kwargs["chunk"])

View File

@ -1,6 +1,3 @@
#!/usr/bin/sh #!/usr/bin/sh
sudo -u postgres sh -c "dropdb note_db && psql -c 'CREATE DATABASE note_db OWNER note;'"; sudo -u postgres sh -c "dropdb note_db && psql -c 'CREATE DATABASE note_db OWNER note;'";
echo 'reset db'; echo 'reset db';
source "env/bin/activate"
./manage.py migrate
./manage.py loaddata initial