我需要为两个不同的应用合并两个数据库。如何在所有Django表中添加前缀以避免任何冲突?
例如,选项应该如下所示:
DB_PREFIX = 'my_prefix_'发布于 2015-08-21 12:44:38
为所有名称加上前缀的另一种方法是将两个DB中的一个放在不同的模式中(多个模式可以共存在同一个数据库中,即使对象的名称相同)--这也将处理表以外的对象,例如索引、视图、函数、.
所以在其中一个数据库上,只需
ALTER SCHEMA public RENAME TO myname;在此之后,您可以转储它(pg_dump -n myname只转储一个模式),并将其导入另一个数据库,而不会发生冲突。
您可以通过myname.tablname或通过设置search_path来引用新模式中的表或其他对象(这可以在每个用户的基础上完成,例如通过ALTER USER SET search_path = myschema, pg_catalog;)。
注意:不知道模式的框架和客户端可能会出现问题,因此您可能需要进行一些额外的调整。YMMV
http://www.postgresql.org/docs/9.4/static/sql-alterschema.html
发布于 2015-08-21 12:23:23
你可以用元选项来做模型,
class ModelHere():
class Meta:
db_table = "tablenamehere"编辑
如果您想在您的所有表中添加前缀,包括auth_user、auth_group等,那么您正在寻找类似于django-表前缀的东西。只需安装并添加一些设置到设置文件,您就完成了。
'table_prefix',添加到安装的应用程序中,DB_PREFIX = 'nifty_prefix'然后运行syncdb,输出将是,
Creating tables ...
Creating table nifty_prefix_auth_permission
Creating table nifty_prefix_auth_group_permissions
Creating table nifty_prefix_auth_group
Creating table nifty_prefix_auth_user_groups
Creating table nifty_prefix_auth_user_user_permissions
Creating table nifty_prefix_auth_user
Creating table nifty_prefix_django_content_type
Creating table nifty_prefix_django_session
Creating table nifty_prefix_django_sitehttps://stackoverflow.com/questions/32140131
复制相似问题