Django迁移;维护与协作者的管理数据库并发性

2024-04-26 22:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Django应用程序有两个数据库。一个是使用django的admin、auth等来跟踪用户信息。另一个是我的应用程序。当我为scripts应用程序进行迁移时,可以在migrations文件夹中创建迁移等等,但是如果我为默认数据库进行迁移,这些迁移存储在哪里?我打算对这些迁移进行版本控制,以便合作者可以在迁移过程中与我同步。我做错了吗?Django版本是1.9

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get("PSQL_AUTH",''), # set in .bashrc
        'USER': os.environ.get("PSQL_USER",''), # set in .bashrc
        'PASSWORD': os.environ.get("PSQL_PW", ''),
        'HOST': '127.0.0.1',
        'PORT': '5432',
    },
    'scripts': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ.get("PSQL_SCRIPTS",''), # set in .bashrc 
        'USER': os.environ.get("PSQL_USER",''),
        'PASSWORD': os.environ.get("PSQL_PW", ''),
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

编辑:原来auth、admin、contenttype和sessions的django迁移存储在django的安装位置。我尝试使用“MIGRATION\u MODULES”设置将这些应用程序上执行的迁移写入我的项目文件夹,但没有成功。你知道吗


Tags: djangoinauth数据库应用程序getadminos
1条回答
网友
1楼 · 发布于 2024-04-26 22:51:30

你可以使用django db路由器

https://djangosteps.wordpress.com/2011/11/08/multiple-database-implementation-in-django/

class MyApp2Router(object):
    """
    A router to control all database operations on models in
    the myapp2 application
    """

    def db_for_read(self, model, **hints):
        """
        Point all operations on myapp2 models to 'my_db_2'
        """
        if model._meta.app_label == 'myapp2':
            return 'my_db_2'
        return None

    def db_for_write(self, model, **hints):
        """
        Point all operations on myapp models to 'other'
        """
        if model._meta.app_label == 'myapp2':
            return 'my_db_2'
        return None

    def allow_syncdb(self, db, model):
        """
        Make sure the 'myapp2' app only appears on the 'other' db
        """
        if db == 'my_db_2':
            return model._meta.app_label == 'myapp2'
        elif model._meta.app_label == 'myapp2':
            return False
        return None

相关问题 更多 >