mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-21 14:51:51 +00:00
Fix un-cleared db error (partial)
This commit is contained in:
parent
75bac01f3a
commit
fcfda644d3
@ -39,7 +39,7 @@ if os.geteuid() == 0:
|
||||
expouser=settings.EXPOUSER
|
||||
expouserpass=settings.EXPOUSERPASS
|
||||
expouseremail=settings.EXPOUSER_EMAIL
|
||||
print(" - SETTINGS: {} ({:.5}...) <{}> on module loading".format(expouser, expouserpass, expouseremail))
|
||||
print(" - settings: {} ({:.5}...) <{}> on module loading".format(expouser, expouserpass, expouseremail))
|
||||
|
||||
|
||||
|
||||
@ -47,12 +47,16 @@ def reinit_db():
|
||||
"""Rebuild database from scratch. Deletes the file first if sqlite is used,
|
||||
otherwise it drops the database and creates it.
|
||||
"""
|
||||
django.db.close_old_connections() # wipes an in-memory sqlite db
|
||||
currentdbname = settings.DATABASES['default']['NAME']
|
||||
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3':
|
||||
if settings.DATABASES['default']['NAME'] == ':memory:':
|
||||
pass
|
||||
elif settings.DATABASES['default']['ENGINE'] == 'django.db.backends.sqlite3':
|
||||
try:
|
||||
os.remove(currentdbname)
|
||||
except OSError:
|
||||
pass
|
||||
print(" ! OSError on removing: " + currentdbname + " (Is the file open in another app?\n")
|
||||
raise
|
||||
else:
|
||||
cursor = connection.cursor()
|
||||
cursor.execute("DROP DATABASE %s" % currentdbname)
|
||||
@ -65,12 +69,17 @@ def reinit_db():
|
||||
def syncuser():
|
||||
"""Sync user - needed after reload
|
||||
"""
|
||||
print("Synchronizing user")
|
||||
print(" - Synchronizing user on: " + settings.DATABASES['default']['NAME'])
|
||||
management.call_command('migrate', interactive=False)
|
||||
user = User.objects.create_user(expouser, expouseremail, expouserpass)
|
||||
user.is_staff = True
|
||||
user.is_superuser = True
|
||||
user.save()
|
||||
try:
|
||||
user = User.objects.create_user(expouser, expouseremail, expouserpass)
|
||||
user.is_staff = True
|
||||
user.is_superuser = True
|
||||
user.save()
|
||||
except:
|
||||
print(" ! INTEGRITY ERROR user on: " + settings.DATABASES['default']['NAME'])
|
||||
print(" ! You probably have not got a clean db when you thought you had.\n")
|
||||
raise
|
||||
|
||||
def dirsredirect():
|
||||
"""Make directories that troggle requires and sets up page redirects
|
||||
@ -438,7 +447,7 @@ if __name__ == "__main__":
|
||||
runlabel=None
|
||||
|
||||
jq = JobQueue(runlabel)
|
||||
jq.run_now_django_tests(1)
|
||||
#jq.run_now_django_tests(1)
|
||||
|
||||
if len(sys.argv)==1:
|
||||
usage()
|
||||
@ -446,7 +455,7 @@ if __name__ == "__main__":
|
||||
elif "test" in sys.argv:
|
||||
jq.enq("caves",import_caves)
|
||||
jq.enq("people",import_people)
|
||||
#jq.run_now_django_tests(2)
|
||||
jq.run_now_django_tests(2)
|
||||
elif "caves" in sys.argv:
|
||||
jq.enq("caves",import_caves)
|
||||
elif "logbooks" in sys.argv:
|
||||
|
74
reset-django.py
Normal file
74
reset-django.py
Normal file
@ -0,0 +1,74 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from pprint import pprint
|
||||
|
||||
# from https://groups.google.com/forum/#!topic/django-users/C8Q7CTpcChc
|
||||
# Just put it in the folder where manage.py file is and run it.
|
||||
|
||||
folders = []
|
||||
base_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
|
||||
def get_directory_list():
|
||||
global folders
|
||||
global base_dir
|
||||
|
||||
for root, d_names, f_names in os.walk(base_dir):
|
||||
for name in d_names:
|
||||
folders.append(os.path.join(root, name))
|
||||
folders = sorted(folders)
|
||||
|
||||
return folders
|
||||
|
||||
|
||||
def delete_pycache():
|
||||
global folders
|
||||
|
||||
for folder in folders:
|
||||
if folder.endswith("__pycache__"):
|
||||
shutil.rmtree(folder)
|
||||
|
||||
print("All __pycache__ files deleted.")
|
||||
return None
|
||||
|
||||
|
||||
def delete_migrations():
|
||||
global folders
|
||||
|
||||
for folder in folders:
|
||||
if folder.endswith("migrations"):
|
||||
for item in os.listdir(folder):
|
||||
if not item.endswith("__init__.py"):
|
||||
os.remove(os.path.join(folder, item))
|
||||
|
||||
print("All migration files deleted.")
|
||||
return None
|
||||
|
||||
|
||||
def delete_sqlite3():
|
||||
global base_dir
|
||||
|
||||
db_file = os.path.join(base_dir, "troggle.sqlite3")
|
||||
|
||||
if os.path.exists(db_file):
|
||||
os.remove(db_file)
|
||||
|
||||
|
||||
def main():
|
||||
global folders
|
||||
|
||||
try:
|
||||
get_directory_list()
|
||||
delete_pycache()
|
||||
delete_migrations()
|
||||
delete_sqlite3()
|
||||
print("All cleanup operations performed successfully.")
|
||||
|
||||
except Exception as e:
|
||||
print("There was some error! Aaargh. \n")
|
||||
raise
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user