Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak przenieść model między dwiema aplikacjami Django (Django 1.7)

Można to zrobić dość łatwo za pomocą migrations.SeparateDatabaseAndState . Zasadniczo używamy operacji bazy danych, aby zmienić nazwę tabeli jednocześnie z dwiema operacjami stanu, aby usunąć model z historii jednej aplikacji i utworzyć go w innej.

Usuń ze starej aplikacji

python manage.py makemigrations old_app --empty

W migracji:

class Migration(migrations.Migration):

    dependencies = []

    database_operations = [
        migrations.AlterModelTable('TheModel', 'newapp_themodel')
    ]

    state_operations = [
        migrations.DeleteModel('TheModel')
    ]

    operations = [
        migrations.SeparateDatabaseAndState(
            database_operations=database_operations,
            state_operations=state_operations)
    ]

Dodaj do nowej aplikacji

Najpierw skopiuj model do pliku model.py nowej aplikacji, a następnie:

python manage.py makemigrations new_app

To wygeneruje migrację z naiwnym CreateModel operacja jako jedyna operacja. Zapakuj to w SeparateDatabaseAndState tak, że nie próbujemy odtworzyć tabeli. Uwzględnij również poprzednią migrację jako zależność:

class Migration(migrations.Migration):

    dependencies = [
        ('old_app', 'above_migration')
    ]

    state_operations = [
        migrations.CreateModel(
            name='TheModel',
            fields=[
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
            ],
            options={
                'db_table': 'newapp_themodel',
            },
            bases=(models.Model,),
        )
    ]

    operations = [
        migrations.SeparateDatabaseAndState(state_operations=state_operations)
    ]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL dzielony wiersz oddzielony przecinkami

  2. Funkcja MySQL RAND() – Generuj liczbę losową w MySQL

  3. Błąd MYSQLi:użytkownik ma już więcej niż „max_user_connections” aktywnych połączeń

  4. Czy w MySQL mogę skopiować jeden wiersz, aby wstawić go do tej samej tabeli?

  5. Jak mogę połączyć dwie tabele MySQL?