How to make migrations for a reusable Django app?

后端 未结 3 1907
我在风中等你
我在风中等你 2021-01-02 04:18

I am making a reusable Django app without a project. This is the directory structure:

/
/myapp/
/myapp/models.py
/myapp/migrations/
/myapp/migrations/__init_         


        
3条回答
  •  孤独总比滥情好
    2021-01-02 04:55

    Actually, you don't need to have project, all you need is settings file and script, that runs migrations creation. Settings must contain folowing (minimum):

    # test_settings.py
    
    DEBUG = True
    
    SECRET_KEY = 'fake-key'
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'your_app'
    ]
    

    And the script, that makes migrations should look like this:

    # make_migrations.py
    
    import os
    import sys
    
    if __name__ == "__main__":
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test_settings")
        from django.core.management import execute_from_command_line
        args = sys.argv + ["makemigrations", "your_app"]
        execute_from_command_line(args)
    

    and you should run it by python make_migrations.py. Hope it helps someone!

提交回复
热议问题