[英]Can a column's server_defaults be different for different dialects in SQLAlchemy?
我正在使用SQLAlchemy來配置數據庫模式,並且我想設置一個server_default
Column
,具體取決於數據庫的方言。 一個數據庫函數調用PostgreSQL,另一個函數調用SQLite。 能做到嗎? 怎么樣?
from sqlalchemy import Column, DateTime
class CustomNow():
pass # What to do?
class Timestamps(object):
created = Column(DateTime, server_default=CustomNow())
使用@compiles
decorartor,如docs中所述 :
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.sql.functions import FunctionElement
class CustomNow(FunctionElement):
name = "custom_now"
@compiles(CustomNow)
def visit_custom_now(element, compiler, **kwargs):
return "(NOW())"
@compiles(CustomNow, "sqlite")
def visit_custom_now_for_sqlite(element, compiler, **kwargs):
return "(DATETIME('now', 'localtime'))"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.