如何在已有数据库中添加Payload CMS表?避免误删现有数据
解决PayloadCMS迁移时误删已有数据库表的问题
关闭自动迁移功能
Payload默认开启的自动迁移会尝试同步整个数据库schema,甚至会清理非Payload创建的表。修改payload.config.ts,禁用自动迁移:export default buildConfig({ // 其他配置项 db: { adapter: postgresAdapter({ pool: { connectionString: process.env.DATABASE_URL, }, }), autoMigration: false, // 关键配置:关闭自动同步 }, });手动生成针对性迁移文件
使用Payload CLI生成仅针对admin_users表的迁移文件,避免全量操作:npx payload migrate:create create-admin-users-table打开生成的迁移文件(位于
src/migrations目录下),只保留创建admin_users表的SQL语句,删除任何涉及删除、清空其他表的代码。执行手动迁移
运行迁移命令,仅执行你编辑好的安全迁移:npx payload migrate限制Payload管理的表范围
确保你的Payload集合配置中只定义admin_users这一个集合,不要引入其他已有表的定义,防止Payload对无关表进行操作。前置备份(必做)
操作前务必在Supabase控制台导出数据库备份,避免意外操作导致数据丢失。
内容的提问来源于stack exchange,提问作者Bernardi
相关产品推荐
相关产品推荐

