feat(articles): تاریخ انتشار خودکار توسط سرور در لحظهٔ انتشار
problem: ستون date نمایشی دستی پر میشد و از لحظهٔ واقعی انتشار جدا میافتاد. - ستون published_at (timestamptz) + مهاجرت idempotent؛ مقالات منتشرشدهٔ قدیمی از updated_at عقبگرد پر میشوند - _apply_publish_timestamp در PUT و PATCH: در گذار draft→published مقدار published_at ثبت میشود؛ ستون date/date_en فقط اگر خالی باشد از آن پر میشود (تاریخ درستِ موجود را خراب نمیکند) - پنل: فیلد «تاریخ انتشار» فقطخواندنی شد (نمایش شمسی؛ پیش از انتشار: «در لحظهٔ انتشار ثبت میشود») - ArticleOut: published_at نمایان شد
This commit is contained in:
@@ -153,6 +153,10 @@ def run_ddl_migrations() -> None:
|
||||
conn.execute(
|
||||
text("ALTER TABLE articles ADD COLUMN IF NOT EXISTS seo_keyphrase VARCHAR(128) NOT NULL DEFAULT ''")
|
||||
)
|
||||
# لحظهٔ انتشار مقاله — تاریخ نمایشی از آن مشتق میشود (نه دستی)
|
||||
conn.execute(text("ALTER TABLE articles ADD COLUMN IF NOT EXISTS published_at TIMESTAMP WITH TIME ZONE"))
|
||||
# عقبگرد یکباره: مقالات منتشرشدهای که تاریخ ندارند، از updated_at پر میشوند
|
||||
conn.execute(text("UPDATE articles SET published_at = COALESCE(updated_at, NOW()) WHERE status='published' AND published_at IS NULL"))
|
||||
# نشانی/کاربری پروژه: نشانی انگلیسی (ترانویسی) از ۱۲۸ نویسه بلندتر میشود
|
||||
conn.execute(text("ALTER TABLE projects ALTER COLUMN location TYPE VARCHAR(256)"))
|
||||
conn.execute(text("ALTER TABLE projects ALTER COLUMN location_en TYPE VARCHAR(256)"))
|
||||
|
||||
Reference in New Issue
Block a user