는 내가 테이블 생성 후 실행하려면 사용자 정의 DDL 문 몇있어 :after_create에서 alembic에서 사용자 정의 DDL을 내보내려면 어떻게합니까?
update_function = DDL("""
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ language 'pgplsql';
""")
update_trigger = DDL("""
CREATE TRIGGER update %(table)s_timestamp BEFORE UPDATE
ON %(table)s FOR EACH ROW EXECUTE PROCEDURE update_timestamp();
""")
을 그리고 나는이처럼 그들을 첨부했습니다 :
event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
내가 create_all
을, I
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ language 'pgplsql';
CREATE TRIGGER update session_timestamp BEFORE UPDATE
ON session FOR EACH ROW EXECUTE PROCEDURE update_timestamp();
하지만 증류기를 사용하여 업그레이드 할 때, 문이 나타나지 않습니다 : SQL을 얻을 나는 기대
-- Running upgrade c0d470e5c81 -> 6692fad7378
CREATE TABLE session (
created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT 'CURRENT_TIMESTAMP',
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT 'CURRENT_TIMESTAMP',
id VARCHAR(32) NOT NULL,
owner_id INTEGER,
database_id VARCHAR(32),
content TEXT,
PRIMARY KEY (id),
FOREIGN KEY(database_id) REFERENCES database (id),
FOREIGN KEY(owner_id) REFERENCES users (id)
);
INSERT INTO alembic_version (version_num) VALUES ('6692fad7378');
'after_create'이벤트를 트리거하려면 alembic을 얻을 수있는 방법이 있습니까?
감사합니다. –