Merge remote-tracking branch 'origin/main' into dev
This commit is contained in:
commit
68e5cb4cce
4 changed files with 150 additions and 458 deletions
572
poetry.lock
generated
572
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "langflow"
|
name = "langflow"
|
||||||
version = "0.5.1"
|
version = "0.5.3"
|
||||||
description = "A Python package with a built-in web application"
|
description = "A Python package with a built-in web application"
|
||||||
authors = ["Logspace <contact@logspace.ai>"]
|
authors = ["Logspace <contact@logspace.ai>"]
|
||||||
maintainers = [
|
maintainers = [
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ from typing import Sequence, Union
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy import exc
|
||||||
import sqlmodel # noqa: F401
|
import sqlmodel # noqa: F401
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|
@ -20,16 +21,21 @@ depends_on: Union[str, Sequence[str], None] = None
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
# ### commands auto generated by Alembic - please adjust! ###
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
connection = op.get_bind()
|
||||||
try:
|
try:
|
||||||
op.drop_table("flowstyle")
|
op.drop_table("flowstyle")
|
||||||
with op.batch_alter_table("component", schema=None) as batch_op:
|
with op.batch_alter_table("component", schema=None) as batch_op:
|
||||||
batch_op.drop_index("ix_component_frontend_node_id")
|
batch_op.drop_index("ix_component_frontend_node_id")
|
||||||
batch_op.drop_index("ix_component_name")
|
batch_op.drop_index("ix_component_name")
|
||||||
|
except exc.SQLAlchemyError:
|
||||||
|
connection.execute("ROLLBACK")
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
op.drop_table("component")
|
op.drop_table("component")
|
||||||
|
except exc.SQLAlchemyError:
|
||||||
|
connection.execute("ROLLBACK")
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,35 @@ class DatabaseService(Service):
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def init_alembic(self):
|
||||||
|
logger.info("Initializing alembic")
|
||||||
|
alembic_cfg = Config()
|
||||||
|
alembic_cfg.set_main_option("script_location", str(self.script_location))
|
||||||
|
alembic_cfg.set_main_option("sqlalchemy.url", self.database_url)
|
||||||
|
command.stamp(alembic_cfg, "head")
|
||||||
|
logger.info("Alembic initialized")
|
||||||
|
|
||||||
def run_migrations(self):
|
def run_migrations(self):
|
||||||
|
# First we need to check if alembic has been initialized
|
||||||
|
# If not, we need to initialize it
|
||||||
|
# if not self.script_location.exists(): # this is not the correct way to check if alembic has been initialized
|
||||||
|
# We need to check if the alembic_version table exists
|
||||||
|
# if not, we need to initialize alembic
|
||||||
|
with Session(self.engine) as session:
|
||||||
|
# If the table does not exist it throws an error
|
||||||
|
# so we need to catch it
|
||||||
|
try:
|
||||||
|
session.execute("SELECT * FROM alembic_version")
|
||||||
|
except Exception:
|
||||||
|
logger.info("Alembic not initialized")
|
||||||
|
try:
|
||||||
|
self.init_alembic()
|
||||||
|
except Exception as exc:
|
||||||
|
logger.error(f"Error initializing alembic: {exc}")
|
||||||
|
raise RuntimeError("Error initializing alembic") from exc
|
||||||
|
else:
|
||||||
|
logger.info("Alembic already initialized")
|
||||||
|
|
||||||
logger.info(f"Running DB migrations in {self.script_location}")
|
logger.info(f"Running DB migrations in {self.script_location}")
|
||||||
alembic_cfg = Config()
|
alembic_cfg = Config()
|
||||||
alembic_cfg.set_main_option("script_location", str(self.script_location))
|
alembic_cfg.set_main_option("script_location", str(self.script_location))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue