Skip to content

Commit

Permalink
Fix for duplicate key error (MontrealCorpusTools#559)
Browse files Browse the repository at this point in the history
* Fix for duplicate key error
* Better resetting of databases
  • Loading branch information
mmcauliffe committed Feb 11, 2023
1 parent f5c89bb commit f6f5cc6
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
8 changes: 4 additions & 4 deletions montreal_forced_aligner/abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,9 @@ def initialize_database(self) -> None:
if exist_check:
if GLOBAL_CONFIG.current_profile.clean:
self.clean_working_directory()
with self.db_engine.connect() as conn:
for tbl in reversed(MfaSqlBase.metadata.sorted_tables):
conn.execute(tbl.delete())
conn.commit()
sqlalchemy.orm.session.close_all_sessions()

MfaSqlBase.metadata.drop_all(self.db_engine)
else:
return

Expand Down Expand Up @@ -617,6 +616,7 @@ def cleanup(self) -> None:
"""
Clean up loggers and output final message for top-level workers
"""
sqlalchemy.orm.session.close_all_sessions()
try:
if getattr(self, "_session", None) is not None:
del self._session
Expand Down
6 changes: 3 additions & 3 deletions montreal_forced_aligner/corpus/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -817,12 +817,12 @@ def add_speaker(self, name: str, session: Session = None):
def _create_dummy_dictionary(self):
with self.session() as session:
if session.query(Dictionary).first() is None:
dialect = Dialect(id=1, name="unspecified")
d = Dictionary(id=1, name="unknown", path="unknown", dialect=dialect)
dialect = Dialect(name="unspecified")
d = Dictionary(name="unknown", path="unknown", dialect=dialect)
session.add(dialect)
session.add(d)
session.flush()
session.query(Speaker).update({Speaker.dictionary_id: 1})
session.query(Speaker).update({Speaker.dictionary_id: d.id})
session.commit()

def add_file(self, file: FileData, session: Session = None):
Expand Down

0 comments on commit f6f5cc6

Please sign in to comment.