django-snowflake执行inspectdb仅获取Snowflake示例库表问题求助
解决django-snowflake inspectdb仅生成SNOW_FLAKE_SAMPLE表的问题
1. 显式指定目标数据库与Schema
django-snowflake的inspectdb默认会读取Snowflake会话的默认数据库/Schema,你需要在DATABASES配置里明确指定NAME(目标数据库名)和SCHEMA参数,替代仅依赖options的方式:
DATABASES = { 'default': { 'ENGINE': 'django_snowflake', 'NAME': '你的目标数据库名', 'SCHEMA': '你的目标Schema名', 'USER': '你的用户名', 'PASSWORD': '你的密码', 'ACCOUNT': '你的账户标识', 'WAREHOUSE': '你的仓库名', 'ROLE': '你的只读角色名', } }
2. 强制初始化会话Schema
即使配置了参数,Snowflake会话可能仍保留默认的数据库/Schema。可以在DATABASES的OPTIONS中加入初始化SQL,强制切换到目标环境:
DATABASES['default']['OPTIONS'] = { 'init_command': 'USE DATABASE 你的目标数据库名; USE SCHEMA 你的目标Schema名;' }
3. 验证权限与表可见性
用snowflake.connector执行以下SQL,确认你的角色对目标Schema下的表有SELECT权限且表可见:
SHOW TABLES IN SCHEMA 你的目标数据库名.你的目标Schema名;
如果能返回目标表,说明权限无问题,问题出在django-snowflake的会话初始化逻辑。
4. 直接给inspectdb指定Schema
在执行inspectdb命令时,直接指定目标Schema覆盖默认配置:
python manage.py inspectdb --database=default --schema=你的目标Schema名 > models.py
若需要完整路径,可写成数据库名.Schema名。
5. 升级django-snowflake版本
部分旧版本的django-snowflake存在Schema识别bug,尝试升级到最新稳定版:
pip install --upgrade django-snowflake
内容的提问来源于stack exchange,提问作者yash gupta
相关产品推荐
相关产品推荐

