Seite 1 von 1

Django SQLite DB Fehler

Verfasst: Samstag 1. Juli 2023, 14:07
von __wired__
Vorab. bin noch sehr neu in django und python

Hey habe seit gestern einige probleme mit meiner db die mich zum löschen(der db und der migration-files) und neu erstellen der db gezwiungen haben.
Ich beschreibe euch mal den Ablauf:
1. neue db erstellen. (connection sucessfull)
2. settings.py: DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
'real_default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'real_db.sqlite3',
}
}

(alte migration-files schon gelöscht )
3. Terminal run: python manage.py makemigrations myapp
(ohne fehler- migration-files werden erstellt)
4. python manage.py migrate --database=real_default
5. Fehler: django.db.utils.OperationalError: table "myapp_name" already exists
(obwohl alle alten dbs gelöscht wurden...)


Hier ist nochmal die komplette fehlermeldung: (venv) PS C:\Users\Wired\PycharmProjects\djangoProject> python manage.py makemigrations home
home\migrations\0001_initial.py
- Create model LoadVideoForPageCreation
- Create model CreateCategory
- Create model ProfileImage
- Create model SearchPictures
- Create model UserCredentials
- Create model UserAddPicture
- Create model GraphicUpload
(venv) PS C:\Users\Wired\PycharmProjects\djangoProject> python manage.py migrate --database=real_default
Operations to perform:
Apply all migrations: admin, auth, contenttypes, home, sessions, taggit
Running migrations:
Applying home.0001_initial...Traceback (most recent call last):
File "C:\Users\Wired\PycharmProjects\djangoProject\venv\lib\site-packages\django\db\backends\utils.py", line 87, in _execute
return self.cursor.execute(sql)
File "C:\Users\Wired\PycharmProjects\djangoProject\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 324, in execute
return super().execute(query)
sqlite3.OperationalError: table "home_searchpictures" already exists


(Bing weis lieder auch nicht weiter...)

Re: Django SQLite DB Fehler

Verfasst: Samstag 1. Juli 2023, 15:13
von sparrow
Warum verwendest du mehr als eine Datenbank?

Die Fehlermeldung ist recht eindeutig: Durch die Migration soll eine Tabelle angelegt werden, die bereits da ist.
Kann sein, dass du das mit den Migrationen gegen verschiedene Datenbanken falsch machst. Ich habe noch nie mehr als eine Datenbank in Django gebraucht. Wenn du keinen wirklich guten Grund dafür hast: Mach es einfach nicht.

Re: Django SQLite DB Fehler

Verfasst: Samstag 1. Juli 2023, 18:46
von noisefloor
Hallo,
Ich habe noch nie mehr als eine Datenbank in Django gebraucht.
Ich hatte mal ein Projekt mit drei DBs (3x SQLite). Der Grund war, das #ausgründen die eigentlichen Daten von App 2 und App 3 in einer anderen DB liegen sollten.

Man muss sich dann halt nur noch zusätzlich Router definieren, damit Django weiß, wann welche DB genutzt werden soll. Ist in der Doku erklärt.

Gruß, noisefloor