MySQLEngine(engine: sqlalchemy.engine.base.Engine)
A class for managing connections to a Cloud SQL for MySQL database.
Methods
_create_connector_engine
_create_connector_engine(
instance_connection_name: str,
database: str,
user: typing.Optional[str],
password: typing.Optional[str],
) -> sqlalchemy.engine.base.Engine
Create a SQLAlchemy engine using the Cloud SQL Python Connector.
Defaults to use "pymysql" driver and to connect using automatic IAM database authentication with the IAM principal associated with the environment's Google Application Default Credentials. If user and password arguments are given, basic database authentication will be used for database login.
Parameters | |
---|---|
Name | Description |
instance_connection_name |
str
The instance connection name of the Cloud SQL instance to establish a connection to. (ex. "project-id:instance-region:instance-name") |
database |
str
The name of the database to connect to on the Cloud SQL instance. |
user |
str, optional
Database user to use for basic database authentication and login. Defaults to None. |
password |
str, optional
Database password for 'user' to use for basic database authentication and login. Defaults to None. |
Returns | |
---|---|
Type | Description |
(sqlalchemy.engine.Engine) |
Engine configured using the Cloud SQL Python Connector. |
_execute
_execute(query: str, params: typing.Optional[dict] = None) -> None
Executes a SQL query within a transaction.
_execute_outside_tx
_execute_outside_tx(query: str, params: typing.Optional[dict] = None) -> None
Executes a SQL query with autocommit (outside of transaction).
_fetch
_fetch(query: str, params: typing.Optional[dict] = None)
Fetch results from a SQL query.
_fetch_rows
_fetch_rows(query: str, params: typing.Optional[dict] = None)
Fetch results from a SQL query as rows.
_load_document_table
_load_document_table(table_name: str) -> sqlalchemy.sql.schema.Table
Load table schema from existing table in MySQL database.
Parameter | |
---|---|
Name | Description |
table_name |
str
The MySQL database table name. |
Returns | |
---|---|
Type | Description |
(sqlalchemy.Table) |
The loaded table. |
connect
connect() -> sqlalchemy.engine.base.Connection
Create a connection from SQLAlchemy connection pool.
Returns | |
---|---|
Type | Description |
(sqlalchemy.engine.Connection) |
a single DBAPI connection checked out from the connection pool. |
from_instance
from_instance(
project_id: str,
region: str,
instance: str,
database: str,
user: typing.Optional[str] = None,
password: typing.Optional[str] = None,
) -> langchain_google_cloud_sql_mysql.engine.MySQLEngine
Create an instance of MySQLEngine from Cloud SQL instance details.
This method uses the Cloud SQL Python Connector to connect to Cloud SQL using automatic IAM database authentication with the Google ADC credentials sourced from the environment by default. If user and password arguments are given, basic database authentication will be used for database login.
More details can be found at https://github.com/GoogleCloudPlatform/cloud-sql-python-connector#credentials
Parameters | |
---|---|
Name | Description |
project_id |
str
Project ID of the Google Cloud Project where the Cloud SQL instance is located. |
region |
str
Region where the Cloud SQL instance is located. |
instance |
str
The name of the Cloud SQL instance. |
database |
str
The name of the database to connect to on the Cloud SQL instance. |
user |
str, optional
Database user to use for basic database authentication and login. Defaults to None. |
password |
str, optional
Database password for 'user' to use for basic database authentication and login. Defaults to None. |
Returns | |
---|---|
Type | Description |
(MySQLEngine) |
The engine configured to connect to a Cloud SQL instance database. |
init_chat_history_table
init_chat_history_table(table_name: str) -> None
Create table with schema required for MySQLChatMessageHistory class.
Required schema is as follows:
::
CREATE TABLE {table_name} (
id INT AUTO_INCREMENT PRIMARY KEY,
session_id TEXT NOT NULL,
data JSON NOT NULL,
type TEXT NOT NULL
)
Parameter | |
---|---|
Name | Description |
table_name |
str
The name of the table to create. |
init_document_table
init_document_table(
table_name: str,
metadata_columns: typing.List[sqlalchemy.sql.schema.Column] = [],
content_column: str = "page_content",
metadata_json_column: typing.Optional[str] = "langchain_metadata",
overwrite_existing: bool = False,
) -> None
Create a table for saving of langchain documents.
Parameters | |
---|---|
Name | Description |
table_name |
str
The MySQL database table name. |
metadata_columns |
List[sqlalchemy.Column]
A list of SQLAlchemy Columns to create for custom metadata. Optional. |
content_column |
str
The column to store document content. Deafult: |
metadata_json_column |
Optional[str]
The column to store extra metadata in JSON format. Default: |
overwrite_existing |
bool
Whether to drop existing table. Default: False. |
init_vectorstore_table
init_vectorstore_table(
table_name: str,
vector_size: int,
content_column: str = "content",
embedding_column: str = "embedding",
metadata_columns: typing.List[langchain_google_cloud_sql_mysql.engine.Column] = [],
metadata_json_column: str = "langchain_metadata",
id_column: str = "langchain_id",
overwrite_existing: bool = False,
store_metadata: bool = True,
) -> None
Create a table for saving of vectors to be used with MySQLVectorStore.
Parameters | |
---|---|
Name | Description |
table_name |
str
The MySQL database table name. |
vector_size |
int
Vector size for the embedding model to be used. |
content_column |
str
Name of the column to store document content. Default: |
embedding_column |
str
Name of the column to store vector embeddings. Default: |
metadata_columns |
List[Column]
A list of Columns to create for custom metadata. Default: []. Optional. |
metadata_json_column |
str
The column to store extra metadata in JSON format. Default: |
id_column |
str
Name of the column to store ids. Default: |
overwrite_existing |
bool
Whether to drop existing table. Default: False. |
store_metadata |
bool
Whether to store metadata in the table. Default: True. |