Flask编程,采用的ORM是SQLAlchemy。
在企业的多租户业务中,要给A企业开通账号管理,需要建立独立的“分库”,B企业一次类推。
即:在企业服务,不同企业在多租户服务中的库表是分离的。
请问: SQLAlchemy 是否支持多库;如何处理 SQLAlchemy 的动态分库的创建?
谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
After pondering on jd's answer I was able to achieve the same result for postgresql 9.2, sqlalchemy 0.8, and flask 0.9 framework:
from sqlalchemy import event
from sqlalchemy.pool import Pool
@event.listens_for(Pool, 'checkout')
def on_pool_checkout(dbapi_conn, connection_rec, connection_proxy):
tenant_id = session.get('tenant_id')
cursor = dbapi_conn.cursor()
if tenant_id is None:
cursor.execute("SET search_path TO public, shared;")
else:
cursor.execute("SET search_path TO t" + str(tenant_id) + ", shared;")
dbapi_conn.commit()
cursor.close()
http://stackoverflow.com/questions/13372001/multi-tenancy-with-sqlalchemy 这个不能够全部解答我的问题;但是整体上给了我一个思路。
很棒的解决方案;需要的同学可以自己读读。