将应用程序从 ROOT_LOCATION 迁移到 FROM¶
要转换 Streamlit 对象,请使用 CREATE OR REPLACE STREAMLIT 与 FROM 参数。为简单起见,此过程假设您将使用仓库运行时。如果要升级到容器运行时(预览版),则需要更改应用程序代码以实现兼容性。请参阅 在运行时环境之间迁移 页面。
如果应用程序代码与容器运行时兼容,您可以通过在 CREATE OR REPLACE STREAMLIT 命令中添加以下参数来修改此过程:
RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11'
COMPUTE_POOL = my_compute_pool
EXTERNAL_ACCESS_INTEGRATIONS = (pypi_access_integration)
要将应用程序从 ROOT_LOCATION 迁移到 FROM,执行以下步骤:
要确定应用程序的当前配置,请运行以下命令:
DESCRIBE STREAMLIT streamlit_db.streamlit_schema.my_app;
将
streamlit_db.streamlit_schema.my_app替换为 Streamlit 对象。为了在后续步骤中使用,请打开文本编辑器并记下以下值。显示示例值,以便您在后续步骤中识别并替换为您的值:
列
值
namemy_apptitleMy Streamlit Approot_location@db1.schema1/my_app_foldermain_filestreamlit_app.pyquery_warehousemy_warehouseuser_packagesstreamlit==1.45.0, pandas==2.2.0import_urls@db2.schema2/packages/package1.zip, @db3.schema3/packages/package2.zipexternal_access_integrationeai_name_1, eai_name_2external_access_secretssecret1, secret2如果您的 Streamlit 对象没有返回
root_location列,说明您的应用程序是使用 FROM 参数创建,不需要转换。确认入口点文件位于应用程序来源目录的根目录中。(如果要使用容器运行时,可以跳过此步骤。)
入口点文件由上一步中的
main_file值指定。要使用 FROM 创建应用程序,main_file必须在来源目录的根目录中声明一个文件。如果入口点文件位于子目录中,则必须重新排列应用程序的文件并相应地更新应用程序的代码,然后再继续。要转换应用程序,请使用 CREATE OR REPLACE STREAMLIT 与 FROM 参数。
在最简单的情况下,您的应用程序可能具有
title、user_packages、import_urls、external_access_integration和external_access_secrets的空值。在这种情况下,您可以运行以下命令,将占位符替换为应用程序的值:CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' QUERY_WAREHOUSE = my_warehouse;
如果应用程序的任何可选参数具有非空值,请将它们包含在 CREATE OR REPLACE STREAMLIT 命令中。例如:
CREATE OR REPLACE STREAMLIT my_app FROM '@db1.schema1/my_app_folder' MAIN_FILE = 'streamlit_app.py' TITLE = 'My Streamlit App' QUERY_WAREHOUSE = my_warehouse IMPORTS = ('@db2.schema2/packages/package1.zip', '@db3.schema3/packages/package2.zip') EXTERNAL_ACCESS_INTEGRATION = ('eai_name_1', 'eai_name_2') SECRETS = ('secret1', 'secret2');
如果应用程序未加载,请确认依赖关系。
有关依赖关系管理的更多信息,请参阅 管理 Streamlit 应用程序的依赖项。