使用Supabase接入Keystone JS遇警告,二者是否存在兼容性问题?
问题解答
这不代表Keystone JS和Supabase不兼容,这个警告是Keystone的数据库自动迁移逻辑导致的:
- Keystone会根据你代码里定义的Schema结构,自动比对数据库中已有的表。如果你的Keystone项目没定义
Profiles对应的Schema,或者定义的Schema和Supabase里现有的Profiles表结构不匹配,Keystone的迁移系统就会把这个表判定为“多余”,进而提示要删除它。 - 另外,Keystone默认的迁移策略(比如
auto模式)会同步Schema定义到数据库,当发现数据库里有Schema没定义的表时,就会触发这类删除警告。
解决办法:
- 要是想保留Supabase里的
Profiles表,得在Keystone代码里定义和该表结构完全匹配的Schema,字段名、类型、约束都得对应上。 - 可以修改Keystone的迁移策略,比如把配置里的
db.migrate设为false(禁用自动迁移),或者用update模式(只更新现有表结构,不删未定义的表)。 - 也可以先备份
Profiles表的数据,再按Keystone的Schema重新建表,之后把数据导回去。
内容的提问来源于stack exchange,提问作者Evanss
相关产品推荐
相关产品推荐

