Upgrade the Native App
New releases of the RelationalAI (RAI) Native App are published on a weekly basis. This section explains how the upgrade process works and how to manage your app’s upgrades.
- The RAI Native App is already installed in your Snowflake account.
- You can run SQL in Snowflake with an active warehouse.
How upgrades work
Section titled “How upgrades work”The RAI Native App receives automatic updates every week. Reasoners provisioned after an update are created using the latest version. Existing reasoners created prior to the update must be upgraded to the latest version to access new features and improvements.
By default, outdated reasoners are automatically upgraded every Monday at 10:00 AM UTC. You may change the upgrade schedule or disable automatic reasoner upgrades and upgrade manually at your convenience.
Set the reasoner upgrade schedule
Section titled “Set the reasoner upgrade schedule”Requires the app_admin application role.
To set or alter the reasoner upgrade schedule, call the app.schedule_upgrade() procedure with the day name and time in UTC:
-- Schedule upgrades for Wednesdays at 15:00 UTCCALL relationalai.app.schedule_upgrade('WEDNESDAY', '15:00');+-------------------------------------+| Upgrade task scheduled successfully |+-------------------------------------+To set or alter the reasoner upgrade schedule using Python, create a client with connect_sync() and call the app.schedule_upgrade() procedure:
from relationalai.client import connect_sync
with connect_sync() as client: sql = client.core.sql_executor assert sql is not None
# Schedule upgrades for Wednesdays at 15:00 UTC sql.collect( "CALL relationalai.app.schedule_upgrade('WEDNESDAY', '15:00')", operation="app.schedule_upgrade", )View the current reasoner upgrade schedule
Section titled “View the current reasoner upgrade schedule”Requires the app_admin application role.
To view the current reasoner upgrade schedule, call the app.upgrade_schedule_status() procedure:
-- View the current upgrade schedule and task status.CALL relationalai.app.upgrade_schedule_status();To view the current reasoner upgrade schedule using Python, create a client with connect_sync() and call the app.upgrade_schedule_status() procedure:
from relationalai.client import connect_sync
with connect_sync() as client: sql = client.core.sql_executor assert sql is not None
# View the current upgrade schedule and task status. rows = sql.collect("CALL relationalai.app.upgrade_schedule_status()", operation="app.upgrade_schedule_status") print(rows)Upgrade reasoners manually
Section titled “Upgrade reasoners manually”Requires the app_admin application role.
RAI Native App updates are mandatory, However, if you prefer, you may disable automatic reasoner upgrades and manually upgrade reasoners at your convenience.
-
Disable automatic reasoner upgrades
To disable automatic reasoner upgrades, call the
app.unschedule_upgrade()procedure:-- Disable automatic upgrades.CALL relationalai.app.unschedule_upgrade();Output +-------------------------------------+| Upgrade task cancelled successfully |+-------------------------------------+Create a client with
connect_sync()and call theapp.unschedule_upgrade()procedure:from relationalai.client import connect_syncwith connect_sync() as client:sql = client.core.sql_executorassert sql is not None# Disable automatic upgrades.rows = sql.collect("CALL relationalai.app.unschedule_upgrade()", operation="app.unschedule_upgrade")print(rows)To re-enable automatic reasoner upgrades, set a new upgrade schedule.
-
Upgrade reasoners
To start the reasoner upgrade process, call the
app.upgrade_reasoners()procedure:-- Start the upgrade process.CALL relationalai.app.upgrade_reasoners();Output +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Upgrade started. Monitor the reasoner upgrade status using the app.upgrade_reasoners_status view to verify that all reasoners have been upgraded. select * from relationalai.app.upgrade_reasoners_status; |+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+Create a client with
connect_sync()and call theapp.upgrade_reasoners()procedure:from relationalai.client import connect_syncwith connect_sync() as client:sql = client.core.sql_executorassert sql is not None# Start the reasoner upgrade process.rows = sql.collect("CALL relationalai.app.upgrade_reasoners()", operation="app.upgrade_reasoners")print(rows) -
Verify reasoners have finished upgrading
The status of the reasoner upgrade can be viewed in the
app.upgrade_reasoners_statusview:SELECT * FROM relationalai.app.upgrade_reasoners_status;Output +-------------------------+---------+-------+----------------+-------------------------------+-------------------------------+| NA_VERSION | ATTEMPT | STATE | REASONER_COUNT | STARTED_AT | LAST_UPDATE ||-------------------------+---------+-------+----------------+-------------------------------+-------------------------------|| 2026.02.27-e829e39d | 1 | DONE | 9 | 2026-02-27 08:11:32.490 -0700 | 2026-02-27 08:17:45.108 -0700 |+-------------------------+---------+-------+----------------+-------------------------------+-------------------------------+The upgrade is complete once the
STATEcolumn showsDONE.Create a client with
connect_sync()and query theapp.upgrade_reasoners_statusview:from relationalai.client import connect_syncwith connect_sync() as client:sql = client.core.sql_executorassert sql is not Nonerows = sql.collect("SELECT * FROM relationalai.app.upgrade_reasoners_status",operation="app.upgrade_reasoners_status",)print(rows)The upgrade is complete once the
STATEcolumn showsDONE.