Django SQLite DB Fehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
__wired__
User
Beiträge: 1
Registriert: Samstag 1. Juli 2023, 13:56

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...)
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

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.
Benutzeravatar
noisefloor
User
Beiträge: 4195
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Antworten