You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLOUD-SQL-POSTGRESQL.md
+14-11Lines changed: 14 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ To install this extension, the Gemini CLI version must be v0.6.0 or above. The v
13
13
14
14
This section covers connecting to a Cloud SQL for PostgreSQL instance.
15
15
16
-
1.**Verify Environment Variables**: The extension requires the following environment variables to be set before the Gemini CLI is started:
16
+
1.**Extension Configuration**: This extension requires several settings (e.g., Project ID, Instance ID, Database Name, User, and Password). These values are gathered via prompts when you first install or link the extension:
17
17
18
18
*`CLOUD_SQL_POSTGRES_PROJECT`: The GCP project ID.
19
19
*`CLOUD_SQL_POSTGRES_REGION`: The region of your Cloud SQL instance.
@@ -22,6 +22,8 @@ This section covers connecting to a Cloud SQL for PostgreSQL instance.
22
22
*`CLOUD_SQL_POSTGRES_USER`: The database username.
23
23
*`CLOUD_SQL_POSTGRES_PASSWORD`: The password for the database user.
24
24
25
+
If you need to update any of these values later, use the `gemini extensions config cloud-sql-postgresql` command.
26
+
25
27
2.**Handle Missing Variables**: If a command fails with an error message containing a placeholder like `${CLOUD_SQL_POSTGRES_PROJECT}`, it signifies a missing environment variable. Inform the user which variable is missing and instruct them to set it.
26
28
27
29
3.**Handle Permission Errors**: If you encounter permission errors, ensure the user has the **Cloud SQL Client** (`roles/cloudsql.client`) role and the correct database-level permissions.
@@ -39,9 +41,9 @@ This section covers administrative operations like managing clusters, instances,
39
41
40
42
---
41
43
42
-
# Additional Tools
44
+
# Additional Extensions
43
45
44
-
This section provides context on additional tools that can be recommended to the user based on their queries.
46
+
This section provides context on additional extensions that can be recommended to the user based on their queries.
45
47
46
48
#### Observability Extension
47
49
@@ -58,12 +60,12 @@ This section provides context on additional tools that can be recommended to the
58
60
59
61
## Connecting to New Resources
60
62
61
-
When you create a new Cloud SQL for PostgreSQL instance, or database using the available tools, the connection is not automatically established. You will need to perform the following steps:
63
+
When you create a new Cloud SQL for PostgreSQL instance, or database using the available skills, the connection is not automatically established. You will need to perform the following steps:
62
64
63
65
1. **(Optional) Save your conversation:** To avoid losing your progress, save the current session by running the command: `/chat save <your-tag>`
64
-
2. **Stop the CLI:** Terminate the Gemini CLI.
65
-
3. **Update Environment Variables:** Set or update your environment variables (e.g. `CLOUD_SQL_POSTGRES_DATABASE`, `CLOUD_SQL_POSTGRES_INSTANCE`) to point to the new resource.
66
-
4. **Restart:** Relaunch the Gemini CLI
66
+
2. **Stop the CLI**: Terminate the Gemini CLI.
67
+
3. **Update Extension Configuration**: Use the command `gemini extensions config cloud-sql-postgresql` to update your settings (e.g. `CLOUD_SQL_POSTGRES_DATABASE`, `CLOUD_SQL_POSTGRES_INSTANCE`) to point to the new resource.
68
+
4. **Restart**: Relaunch the Gemini CLI
67
69
5. **(Optional) Resume conversation:** Resume your conversation with the command: `/chat resume <your-tag>`
68
70
69
71
**Important:** Do not assume a connection to a newly created resource is active. Always follow the steps above to reconfigure your connection.
@@ -77,12 +79,13 @@ Users may have set project environment variables:
77
79
* `CLOUD_SQL_POSTGRES_INSTANCE`: The ID of the Cloud SQL for PostgreSQL instance.
78
80
* `CLOUD_SQL_POSTGRES_DATABASE`: The name of the database.
79
81
80
-
Instead of prompting the user for these values for specific tool calls, prompt the user to verify reuse a specific value.
81
-
Make sure to not use the environment variable name like `CLOUD_SQL_POSTGRES_PROJECT`, `${CLOUD_SQL_POSTGRES_PROJECT}`, or `$CLOUD_SQL_POSTGRES_PROJECT`. The value can be found by using command: `echo $CLOUD_SQL_POSTGRES_PROJECT`.
82
+
Instead of prompting the user for these values for specific skill calls, prompt the user to verify the reuse of a specific setting value.
83
+
Make sure to not use the environment variable name like `CLOUD_SQL_POSTGRES_PROJECT`, `${CLOUD_SQL_POSTGRES_PROJECT}`, or `$CLOUD_SQL_POSTGRES_PROJECT`.
84
+
The value can be verified by the user using the `gemini extensions config cloud-sql-postgresql` command or by checking their local settings.
82
85
83
86
## Use Full Table Name Format "DATABASE_NAME.SCHEMA_NAME.TABLE_NAME"
84
87
85
-
**ALWAYS** use the full table name format, `DATABASE_NAME.SCHEMA_NAME.TABLE_NAME` in the generated SQL when using the `execute_sql` or `cloud_sql_postgresql__execute_sql` tool.
88
+
**ALWAYS** use the full table name format, `DATABASE_NAME.SCHEMA_NAME.TABLE_NAME` in the generated SQL when executing the `execute_sql` script.
86
89
* Default to using "public" for the schema name.
87
90
* Use command `echo $CLOUD_SQL_POSTGRES_DATABASE` to get the current database value.
88
91
@@ -92,7 +95,7 @@ When working with AI features like vector embeddings in Cloud SQL, leverage the
92
95
93
96
Embeddings can be generated using the `embedding()` function. For example: `embedding(<model_name>, <text_column_or_variable>)`.
94
97
95
-
As an agent, if you do not know which model to use, you should use your tools to search for available and appropriate text embedding models compatible with the `google_ml_integration` extension (e.g., by searching for "Cloud SQL google_ml_integration supported models").
98
+
As an agent, if you do not know which model to use, you should use your skills to search for available and appropriate text embedding models compatible with the `google_ml_integration` extension (e.g., by searching for "Cloud SQL google_ml_integration supported models").
96
99
97
100
When performing similarity searches, remember to cast the result of the `embedding` function to the `vector` type. For example:
98
101
`ORDER BY description_vector <-> embedding(<model_name>, $1)::vector`
Copy file name to clipboardExpand all lines: README.md
+13-54Lines changed: 13 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
> [!NOTE]
4
4
> This extension is currently in beta (pre-v1.0), and may see breaking changes until the first stable release (v1.0).
5
5
6
-
This Gemini CLI extension provides a set of tools to interact with [Cloud SQL for PostgreSQL](https://cloud.google.com/sql/docs/postgres) instances. It allows you to manage your databases, execute queries, explore schemas, and troubleshoot issues directly from the [Gemini CLI](https://google-gemini.github.io/gemini-cli/), using natural language prompts.
6
+
This Gemini CLI extension provides a set of skills to interact with [Cloud SQL for PostgreSQL](https://cloud.google.com/sql/docs/postgres) instances. It allows you to manage your databases, execute queries, explore schemas, and troubleshoot issues directly from the [Gemini CLI](https://google-gemini.github.io/gemini-cli/), using natural language prompts.
7
7
8
8
Learn more about [Gemini CLI Extensions](https://github.com/google-gemini/gemini-cli/blob/main/docs/extensions/index.md).
9
9
> [!IMPORTANT]
@@ -57,9 +57,6 @@ You will be prompted to configure the following settings during installation. Th
57
57
*`CLOUD_SQL_POSTGRES_PASSWORD`: (Optional) The password for the database user.
58
58
*`CLOUD_SQL_POSTGRES_IP_TYPE`: (Optional) Type of the IP address: `PUBLIC`, `PRIVATE`, or `PSC`. Defaults to `PUBLIC`.
59
59
60
-
> [!NOTE]
61
-
> This configuration is primarily for the Data Plane tools (querying). The Admin toolset does not strictly require these to be pre-set if you provide them in your prompts, but it is recommended for a smoother experience.
62
-
63
60
To view or update your configuration:
64
61
65
62
**List Settings:**
@@ -72,22 +69,10 @@ To view or update your configuration:
72
69
*`scope`: (Optional) The scope of the setting in (`user` or `workspace`). Defaults to `user`.
73
70
* Currently, you must restart the Gemini CLI for changes to take effect. We recommend using `gemini --resume` to resume your session.
74
71
75
-
Alternatively, you can manually set these environment variables before starting the Gemini CLI:
export CLOUD_SQL_POSTGRES_IP_TYPE="PUBLIC"# Optional: `PUBLIC`, `PRIVATE`, `PSC`. Defaults to `PUBLIC`.
85
-
```
86
-
87
72
> [!NOTE]
88
73
> * Ensure [Application Default Credentials](https://cloud.google.com/docs/authentication/gcloud) are available in your environment.
89
74
> * If your Cloud SQL for PostgreSQL instance uses private IPs, you must run Gemini CLI in the same Virtual Private Cloud (VPC) network.
90
-
> * See [Troubleshooting](#troubleshooting) for debugging your configuration.
75
+
> * See [Troubleshooting](#troubleshooting) for debugging your configuration.
91
76
92
77
### Start Gemini CLI
93
78
@@ -116,43 +101,17 @@ Interact with Cloud SQL for PostgreSQL using natural language:
116
101
***Generate Code:**
117
102
* "Generate a Python dataclass to represent the 'customers' table."
118
103
119
-
## Supported Tools
120
-
121
-
***Admin:**
122
-
*`clone_instance`: Creates a clone for an existing Cloud SQL for PostgreSQL instance.
123
-
*`create_backup`: Creates a backup on a Cloud SQL instance.
124
-
* `create_instance`: Use this tool to create an Postgres instance.
125
-
* `create_user`: Use this tool to create Postgres-BUILT-IN or IAM-based users.
126
-
*`create_database`: Creates a new database in a Cloud SQL instance.
127
-
* `get_instance`: Use this tool to get details about an Postgres instance.
128
-
* `list_instances`: Use this tool to list instances in a given project and location.
129
-
*`list_databases`: Lists all databases for a Cloud SQL instance.
130
-
*`restore_backup`: Restores a backup of a Cloud SQL instance.
131
-
*`wait_for_operation`: Use this tool to poll the operations API until the operation is done.
132
-
133
-
***Data:**
134
-
*`list_tables`: Use this tool to lists tables in the database.
135
-
*`database_overview`: Use this tool to fetches the current state of the PostgreSQL server.
136
-
*`execute_sql`: Use this tool to executes a SQL query.
137
-
*`list_active_queries`: Use this tool to list currently running queries.
138
-
*`list_available_extensions`: Use this tool to list available extensions for installation.
139
-
*`list_installed_extensions`: Use this tool to list installed extensions.
140
-
*`get_query_plan`: Use this tool to get query plan.
141
-
*`list_autovacuum_configurations`: Use this tool to list autovacuum configurations and its value.
142
-
*`list_database_stats`: Use this tool to lists the key performance and activity statistics for each database in the postgreSQL instance.
143
-
*`list_indexes`: Use this tool to list available user indexes in a PostgreSQL database.
144
-
*`list_memory_configurations`: Use this tool to list memory configurations and its value.
145
-
*`list_pg_settings`: Use this tool to list configuration parameters for the PostgreSQL server.
146
-
*`list_publication_tables`: Use this tool to list publication tables in a PostgreSQL database.
147
-
*`list_replication_slots`: Use this tool to list replication slots.
148
-
*`list_roles`: Use this tool to lists all the user-created roles in PostgreSQL database.
149
-
*`list_schemas`: Use this tool to lists schemas in the database.
150
-
*`list_sequences`: Use this tool to list sequences in a PostgreSQL database.
151
-
*`list_tablespaces`: Use this tool to lists tablespaces in the database.
152
-
*`list_top_bloated_tables`: Use this tool to list top bloated tables.
153
-
*`list_triggers`: Use this tool to lists triggers in the database.
154
-
*`list_views`: Use this tool to lists views in the database from pg_views with a default limit of 50 rows.
155
-
*`list_invalid_indexes`: Use this tool to list invalid indexes.
104
+
## Supported Skills
105
+
106
+
This extension provides the following skills:
107
+
108
+
*[Cloud SQL for PostgreSQL Admin](./skills/cloud-sql-postgres-admin/SKILL.md) - Use these tools when you need to provision new Cloud SQL instances, create databases and users, clone existing environments, and monitor the progress of long-running operations.
109
+
*[Cloud SQL for PostgreSQL Data](./skills/cloud-sql-postgres-data/SKILL.md) - Use these tools when you need to explore the database structure, discover schema objects like views or stored procedures, and execute custom SQL queries to interact with your data.
110
+
*[Cloud SQL for PostgreSQL Health](./skills/cloud-sql-postgres-health/SKILL.md) - Use these tools when you need to audit database health, identify storage bloat, find invalid indexes, analyze table statistics, and manage maintenance configurations like autovacuum.
111
+
*[Cloud SQL for PostgreSQL Lifecycle](./skills/cloud-sql-postgres-lifecycle/SKILL.md) - Use these tools when you need to manage the lifecycle of your instances, including performing backups and restores, checking major version upgrade compatibility, and monitoring overall instance status.
112
+
*[Cloud SQL for PostgreSQL Monitor](./skills/cloud-sql-postgres-monitor/SKILL.md) - Use these tools when you need to troubleshoot performance bottlenecks, analyze query execution plans, identify resource-heavy processes, and monitor system-level PromQL metrics.
113
+
*[Cloud SQL for PostgreSQL Replication](./skills/cloud-sql-postgres-replication/SKILL.md) - Use these tools when you need to monitor replication health, manage sync states between nodes, and audit database roles and security settings to ensure environment integrity.
114
+
*[Cloud SQL for PostgreSQL View Config](./skills/cloud-sql-postgres-view-config/SKILL.md) - Use these tools when you need to discover and manage PostgreSQL extensions or fine-tune engine-level settings such as memory allocation and server configuration parameters.
0 commit comments