From 0166643724cfd80792c5358bf2d07d0ac65c3e48 Mon Sep 17 00:00:00 2001 From: nikkie Date: Mon, 8 Dec 2025 23:13:23 +0900 Subject: [PATCH 1/3] Replace DatabaseSessionService with SqliteSessionService --- contributing/samples/migrate_session_db/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing/samples/migrate_session_db/main.py b/contributing/samples/migrate_session_db/main.py index 10d2da0af5..3547a1a017 100644 --- a/contributing/samples/migrate_session_db/main.py +++ b/contributing/samples/migrate_session_db/main.py @@ -21,7 +21,7 @@ from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService from google.adk.cli.utils import logs from google.adk.runners import Runner -from google.adk.sessions.database_session_service import DatabaseSessionService +from google.adk.sessions.sqlite_session_service import SqliteSessionService from google.adk.sessions.session import Session from google.genai import types @@ -32,7 +32,7 @@ async def main(): app_name = 'migrate_session_db_app' user_id_1 = 'user1' - session_service = DatabaseSessionService('sqlite:///./sessions.db') + session_service = SqliteSessionService('./sessions.db') artifact_service = InMemoryArtifactService() runner = Runner( app_name=app_name, From b9483f8e7312f322fe42ba44987c0372c06dd0e6 Mon Sep 17 00:00:00 2001 From: nikkie Date: Mon, 8 Dec 2025 23:15:29 +0900 Subject: [PATCH 2/3] Revise migration script instructions in README Updated migration instructions to backup the previous database and use the old database for migration. --- contributing/samples/migrate_session_db/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contributing/samples/migrate_session_db/README.md b/contributing/samples/migrate_session_db/README.md index 6f1fc1aa11..784586bf5a 100644 --- a/contributing/samples/migrate_session_db/README.md +++ b/contributing/samples/migrate_session_db/README.md @@ -27,10 +27,13 @@ ADK provides a migration script to update the database schema. Run the following ```bash # Clean up the previous run before executing the migration -cp dnd_sessions.db sessions.db +cp dnd_sessions.db sessions.db.old # Download and run the migration script -curl -fsSL https://raw.githubusercontent.com/google/adk-python/main/scripts/db_migration.sh | sh -s -- "sqlite:///%(here)s/sessions.db" "google.adk.sessions.database_session_service" +curl -fsSL https://raw.githubusercontent.com/google/adk-python/main/scripts/db_migration.sh | sh -s -- "sqlite:///%(here)s/sessions.db.old" "google.adk.sessions.database_session_service" + +python -m google.adk.sessions.migrate_from_sqlalchemy_sqlite --source_db_path ./sessions.db.old --dest_db_path ./sessions.db +rm sessions.db.old ``` This script uses `alembic` to compare the existing schema against the current model definition and automatically generates and applies the necessary migrations. @@ -52,4 +55,4 @@ You should see output indicating that the old session was successfully loaded. ## Limitations -The migration script is designed to add new columns that have been introduced in newer ADK versions. It does not handle more complex schema changes, such as modifying a column's data type (e.g., from `int` to `string`) or altering the internal structure of stored data. \ No newline at end of file +The migration script is designed to add new columns that have been introduced in newer ADK versions. It does not handle more complex schema changes, such as modifying a column's data type (e.g., from `int` to `string`) or altering the internal structure of stored data. From 3a481446023c656e5dd93b3a733087b92cb57e54 Mon Sep 17 00:00:00 2001 From: nikkie Date: Sat, 13 Dec 2025 00:57:58 +0900 Subject: [PATCH 3/3] Run isort --- contributing/samples/migrate_session_db/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing/samples/migrate_session_db/main.py b/contributing/samples/migrate_session_db/main.py index 3547a1a017..2f727acb4e 100644 --- a/contributing/samples/migrate_session_db/main.py +++ b/contributing/samples/migrate_session_db/main.py @@ -21,8 +21,8 @@ from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService from google.adk.cli.utils import logs from google.adk.runners import Runner -from google.adk.sessions.sqlite_session_service import SqliteSessionService from google.adk.sessions.session import Session +from google.adk.sessions.sqlite_session_service import SqliteSessionService from google.genai import types load_dotenv(override=True)