SQLAlchemy
こちらのcheatsheetに目を通す
dbのuriを指定して、engineを作る
engine.execute(...)で SQLを発行できる
selectしてものは、iterableで帰ってくるのでそれを見る?
transactionをするには、connectionを作る
conn == engine.connect() して begin()して commit()して close()する
schema
metadata = Metadata(engine)して, Table("TNAME", metadata, Column....)して
metadata.create_all()する
inspect(engine).get_table_names())でschema
「軽い」使い方の入門とした書いたのがこの記事です
SQLにプレースホルダを書くこともできます
DBAPI側でやってくれる。パラメタクエリ
pandas.read_sql_query を使って
select, literal_column などの関数を使って組み立てます
実際に生成されるSQLは print() を使って確認できます。
backref: 双方向, back_populates: 双方向を自分で組む,
Error 対応 error : No module named 'MySQLdb' MySQLdbがpython3対応してないので、同じAPIを持つもの?をいれる。
$ pip install mysql-python
error: No module named 'ConfigParser
$ pip install mysqlclient
error: OSError: mysql_config not found
$ sudo apt search mysql |grep dev
で、探す。
$ sudo apt install default-libmysqlclient-dev
を入れる。
$ ll /usr/bin/mysql_config*
mysql_config ある
$ pip install mysqlclient
ok.
$ flask db migrate -m 'users'
ok.
poolingの default値
pool_size : 5
timeout: 30 seconds
max_overflow: 10, pool_sizeに達しても、追加でだしてくれる。が再利用はされず破棄される。通常のは眠る。
pool_size + max_overflowが、最大同時接続数と。