Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách di chuyển mô hình giữa hai ứng dụng Django (Django 1.7)

Điều này có thể được thực hiện khá dễ dàng bằng cách sử dụng migrations.SeparateDatabaseAndState . Về cơ bản, chúng tôi sử dụng một thao tác cơ sở dữ liệu để đổi tên bảng đồng thời với hai thao tác trạng thái để xóa mô hình khỏi lịch sử của một ứng dụng và tạo nó trong một ứng dụng khác.

Xóa khỏi ứng dụng cũ

python manage.py makemigrations old_app --empty

Trong quá trình di chuyển:

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)
    ]

Thêm vào ứng dụng mới

Đầu tiên, sao chép mô hình vào model.py của ứng dụng mới, sau đó:

python manage.py makemigrations new_app

Điều này sẽ tạo ra một sự di chuyển với một CreateModel ngây thơ hoạt động như hoạt động duy nhất. Kết thúc điều đó trong một SeparateDatabaseAndState hoạt động như vậy mà chúng tôi không cố gắng tạo lại bảng. Cũng bao gồm việc di chuyển trước như một phần phụ thuộc:

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. Chọn Cơ sở dữ liệu MySQL trên Linux qua Dòng lệnh

  2. CHỈ THAM GIA TRÁI hàng đầu tiên

  3. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 8.04 (Hardy)

  4. Có bất lợi nào khi sử dụng varchar chung (255) cho tất cả các trường dựa trên văn bản không?

  5. Cách hoạt động của hàm POSITION () trong MySQL