我有2个空数据库。我手边有两项任务。
任务1:
我想创建这两个表m1& m2在我的主数据库(sqlite)中并向表中添加数据。
任务2:
然后我想将这两个表(带数据)从sqlite复制到我的辅助数据库(mysql)。
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db'
app.config['SQLALCHEMY_BINDS'] = {
'mysql': "mysql+pymysql://root@localhost/db",
}
db=SQLAlchemy(app)
class m1(db.Model):
__tablename__= 'm1'
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(255))
def __init__(self,name):
self.name=name
class m2(db.Model):
__tablename__= 'm2'
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(255))
def __init__(self,name):
self.name=name
Task1很简单。我使用create_all()
创建表,使用db.session.add()
将数据添加到这些表。
现在,Task2是一个棘手的问题。我无法在mysql中创建表,因为我的会话绑定到sqlite引擎。我也无法切换会话以查询来自我的主数据库(sqlite)的数据并添加到我的辅助数据库(mysql)。
解决这个问题的可能方法(据我所知)。
为我想要的同一个表/模型和交换引擎创建多个绑定密钥。例如:我从sqlite中获取表m1中的数据,我切换到mysql引擎并创建表m1并填充数据(我不知道如何)。
以某种方式创建多个会话(您无法创建,但如果您有办法)
您建议的其他任何内容。
规则:
flask_sqlalchemy
(所以不要写普通sqlalchemy
)。