Djangos models.py ist im Vergleich zu anderen views.py mit der Datenbank verknüpft. Wenn Sie also einmal damit herumspielen, scheint es sehr problematisch zu sein, aber diesmal ist die Lösung festgelegt. Seien Sie also auf Ihre eigene Weise höflich Ich habe versucht, es in zu beschreiben. Wenn es schwer zu verstehen ist, tut es mir leid.
Python==3.6.1 Django==2.2.1 djangorestframework==3.11.0
"Die Migration von models.py ist abgeschlossen! Oh, ich habe einen Tippfehler im Variablennamen gefunden ... Umschreiben und migrieren (` $ python manage.py makemigratios → $ python manage.py migrate```), Fehler ... was Selbst wenn ich es tue, ein Fehler ... Was soll ich tun? " Hier erfahren Sie, wie Sie dieses Problem lösen können.
Geben Sie einen Befehl ein
$ python manage.py makemigrations --empty <App Name>
Migrations for '<App Name>':
<App Name>/migrations/0012_auto_20200610_0000.py
#0012_auto_20200610_0000.py
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('<App Name>', '0011_auto_20200610_1111'),
]
operations = [
]
#0012_auto_20200610_0000.py
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('<App Name>', '0011_auto_20200610_1111'),
]
operations = [
migrations.RenameField(
model_name='<Der Modellname, den Sie in der App ändern möchten>',
old_name='image1Discription', #Beispiel: Variablenname, den Sie ändern möchten
new_name='image1Description' #Beispiel: Variablenname nach Änderung
)
]
#0012_auto_20200610_0000.py
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('<App Name>', '0011_auto_20200610_1111'),
]
operations = [
migrations.RenameField(
model_name='<Der Modellname, den Sie in der App ändern möchten>',
old_name='image1Discription', #Beispiel: Variablenname, den Sie ändern möchten
new_name='image1Description' #Beispiel: Variablenname nach Änderung
),
migrations.RenameField(
model_name='<Der Modellname, den Sie in der App ändern möchten>',
old_name='image2Discription', #Beispiel: Variablenname, den Sie ändern möchten
new_name='image2Description' #Beispiel: Variablenname nach Änderung
)
]
Vergessen Sie nicht, die Datenbank von settings.py lokal anzugeben.
$ python manage.py migrate
Running migrations:
Applying realestatedb.0012_auto_20200610_0000... OK
Sie können jetzt die lokale Datenbank ändern (z. B. postgre). Da models.py mit dem Verhalten anderer Apps als DB zusammenhängt, wird selbst wenn Sie es jetzt ausführen, ein 503-Fehler angezeigt. Wenn Sie jedoch in einem späteren Prozess Änderungen an models.py schreiben, wird der Fehler behoben.
Vergessen Sie nicht, die Datenbank von settings.py remote anzugeben.
$ git add .
$ git commit -m "db revise"
$ git push heroku master
(Warten)
$ heroku run python manage.py migrate
Running migrations:
Applying realestatedb.0012_auto_20200610_0000... OK
Damit ist die Remote-DB vorerst in Ordnung.
$ git add .
$ git commit -m "db revise"
$ git push heroku master
(Warten)
Wenn Sie den Vorgang überprüfen und er in Ordnung ist, sind Sie fertig. Nur weil Sie mit models.py herumgespielt haben, ist die Migration bereits abgeschlossen, sodass Sie nicht weiter migrieren müssen.
"Die Migration von models.py ist abgeschlossen! Oh, ich dachte, es wäre diese Variable Int, aber es ist Datetime, nicht Int ... Ich habe einen Fehler gemacht ... Rewrite und migrate (` $ python manage.py makemigratios → $ python In manage.py migrate```) ein Fehler ... egal was ich mache ... was soll ich machen? " Hier erfahren Sie, wie Sie dieses Problem lösen können.
$ python manage.py makemigrations --empty realestatedb
Migrations for 'realestatedb':
realestatedb/migrations/0012_auto_20200610_0000.py
#0012_auto_20200610_0000.py
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('<App Name>', '0011_auto_20200610_1111'),
]
operations = [
]
from django.db import migrations, models
Bitte beachten Sie, dass ein Fehler auftritt, wenn Sie den Import von `` `models`` `nicht hinzufügen.
#### **`#0012_auto_20200610_0000.py`**
```py
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('<App Name>', '0011_auto_20200610_1111'),
]
operations = [
migrations.AlterField(
model_name='<Der Modellname, den Sie in der App ändern möchten>',
name='FeePayDate', #Beispiel: Variablenname, den Sie ändern möchten
field=models.DateTimeField(blank=True, null=True), #Beispiel: Datentypname nach Änderung
),
]
Vergessen Sie nicht, die Datenbank von settings.py lokal anzugeben.
$ python manage.py migrate
Running migrations:
Applying realestatedb.0012_auto_20200610_0000... OK
Sie können jetzt die lokale Datenbank ändern (z. B. postgre). Da models.py mit dem Verhalten anderer Apps als DB zusammenhängt, wird selbst wenn Sie es jetzt ausführen, ein 503-Fehler angezeigt. Wenn Sie jedoch in einem späteren Prozess Änderungen an models.py schreiben, wird der Fehler behoben.
Vergessen Sie nicht, die Datenbank von settings.py remote anzugeben.
$ git add .
$ git commit -m "db field revise"
$ git push heroku master
(Warten)
$ heroku run python manage.py migrate
Running migrations:
Applying realestatedb.0012_auto_20200610_0000... OK
Damit ist die Remote-DB vorerst in Ordnung.
$ git add .
$ git commit -m "db field revise"
$ git push heroku master
(Warten)
Wenn Sie den Vorgang überprüfen und er in Ordnung ist, sind Sie fertig. Nur weil Sie mit models.py herumgespielt haben, ist die Migration bereits abgeschlossen, sodass Sie nicht weiter migrieren müssen.
Benennen Sie Tabellenspalten in Django3 um https://qiita.com/holly0819/items/41f01096f59416b0d52b
Lernnotizen für die Migrationsfunktion im Django-Framework (3) https://qiita.com/pumbaacave/items/8b6f8d96ddc7cc112827
Change column type with django migrations https://stackoverflow.com/questions/27385118/change-column-type-with-django-migrations
Recommended Posts