diff options
-rw-r--r-- | docs/versionhistory.rst | 4 | ||||
-rw-r--r-- | src/apscheduler/datastores/sqlalchemy.py | 13 | ||||
-rw-r--r-- | tests/test_datastores.py | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/docs/versionhistory.rst b/docs/versionhistory.rst index 1e0c332..efe69fd 100644 --- a/docs/versionhistory.rst +++ b/docs/versionhistory.rst @@ -4,6 +4,10 @@ Version history To find out how to migrate your application from a previous version of APScheduler, see the :doc:`migration section <migration>`. +**UNRELEASED** + +- Fixed the ``schema`` parameter in ``SQLAlchemyDataStore`` not being applied + **4.0.0a2** - **BREAKING** Changed the scheduler API to always require a call to either diff --git a/src/apscheduler/datastores/sqlalchemy.py b/src/apscheduler/datastores/sqlalchemy.py index 9c7c905..ebb076f 100644 --- a/src/apscheduler/datastores/sqlalchemy.py +++ b/src/apscheduler/datastores/sqlalchemy.py @@ -100,12 +100,13 @@ class _BaseSQLAlchemyDataStore: def __attrs_post_init__(self) -> None: # Generate the table definitions + prefix = f"{self.schema}." if self.schema else "" self._metadata = self.get_table_definitions() - self.t_metadata = self._metadata.tables["metadata"] - self.t_tasks = self._metadata.tables["tasks"] - self.t_schedules = self._metadata.tables["schedules"] - self.t_jobs = self._metadata.tables["jobs"] - self.t_job_results = self._metadata.tables["job_results"] + self.t_metadata = self._metadata.tables[prefix + "metadata"] + self.t_tasks = self._metadata.tables[prefix + "tasks"] + self.t_schedules = self._metadata.tables[prefix + "schedules"] + self.t_jobs = self._metadata.tables[prefix + "jobs"] + self.t_job_results = self._metadata.tables[prefix + "job_results"] # Find out if the dialect supports UPDATE...RETURNING update = self.t_jobs.update().returning(self.t_jobs.c.id) @@ -137,7 +138,7 @@ class _BaseSQLAlchemyDataStore: interval_type = EmulatedInterval tags_type = JSON - metadata = MetaData() + metadata = MetaData(schema=self.schema) Table("metadata", metadata, Column("schema_version", Integer, nullable=False)) Table( "tasks", diff --git a/tests/test_datastores.py b/tests/test_datastores.py index 658a0f3..9c9a0cf 100644 --- a/tests/test_datastores.py +++ b/tests/test_datastores.py @@ -81,7 +81,7 @@ def psycopg2_store() -> DataStore: engine = create_engine("postgresql+psycopg2://postgres:secret@localhost/testdb") try: - yield SQLAlchemyDataStore(engine, start_from_scratch=True) + yield SQLAlchemyDataStore(engine, schema="alter", start_from_scratch=True) finally: engine.dispose() |