项目需要支持多个数据库,SQLALCHEMY_DATABASE_URI指向mysql数据库,SQLALCHEMY_BINDS包含两个不同的postgresql数据库,如何实现批量向postgresql数据库插入数据?希望最好给出model创建,数据批量提交的代码示例!
如下是配置信息
mysql_host = os.environ.get("MYSQL_HOST", "127.0.0.1")
mysql_port = os.environ.get("MYSQL_PORT", 3306)
mysql_user = os.environ.get("MYSQL_USER", "root")
mysql_password = os.environ.get("MYSQL_PASSWORD", "123456")
mysql_db_name = os.environ.get("MYSQL_DB_NAME", "jobs")
db_url = f'mysql+pymysql://{mysql_user}:{mysql_password}@{mysql_host}:{mysql_port}/{mysql_db_name}'
SQLALCHEMY_DATABASE_URI = db_url
SQLALCHEMY_BINDS = {
'staging_push_db': 'postgresql://public:12345@127.0.0.1/public',
'production_push_db': 'postgresql://public:12345@127.0.0.1/public',
}
model 代码, 分别绑定不同的db实例
class StagingPings(db.Model):
__bind_key__ = 'staging_push_db'
__tablename__ = 'pings'
# __table__ = "pings"
id = db.Column(db.BigInteger, primary_key=True)
ping_url = db.Column(db.String(100))
ping_time = db.Column(db.String(7))
ping_unit = db.Column(db.String(3))
service_name = db.Column(db.String(100))
created_at = db.Column(db.DateTime, default=datetime.now)
class ProductionPings(db.Model):
__bind_key__ = 'production_push_db'
__tablename__ = 'pings'
id = db.Column(db.BigInteger, primary_key=True)
ping_url = db.Column(db.String(100))
ping_time = db.Column(db.String(7))
ping_unit = db.Column(db.String(3))
service_name = db.Column(db.String(100))
created_at = db.Column(db.DateTime, default=datetime.now)