Fix unique constraints for id column and update API key creation (#1764)

* Update .gitignore to ignore additional files and directories

* Add migration to fix column types

* Bump version to 0.6.17 in pyproject.toml
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-04-22 19:58:15 -03:00 committed by GitHub
commit 676021d2d3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 1196 additions and 1138 deletions

8
.gitignore vendored
View file

@ -260,3 +260,11 @@ langflow.db
src/backend/langflow/frontend/
.docker
scratchpad*
/tmp/*
src/backend/langflow/frontend/
src/backend/base/langflow/frontend/
.docker
scratchpad*
chroma*/*
stuff/*
src/frontend/playwright-report/index.html

2233
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
[tool.poetry]
name = "langflow"
version = "0.6.16"
version = "0.6.17"
description = "A Python package with a built-in web application"
authors = ["Logspace <contact@logspace.ai>"]
maintainers = [

View file

@ -0,0 +1,91 @@
"""Fix types
Revision ID: bc804d8e7a18
Revises: bc2f01c40e4a
Create Date: 2024-04-22 19:33:02.242116
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects import postgresql
from sqlalchemy.engine.reflection import Inspector
# revision identifiers, used by Alembic.
revision: str = 'bc804d8e7a18'
down_revision: Union[str, None] = 'bc2f01c40e4a'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
conn = op.get_bind()
inspector = Inspector.from_engine(conn) # type: ignore
# ### commands auto generated by Alembic - please adjust! ###
table_names = inspector.get_table_names()
if "apikey" in table_names:
column_names = [col["name"] for col in inspector.get_columns("apikey")]
with op.batch_alter_table('apikey', schema=None) as batch_op:
if "created_at" in column_names:
batch_op.alter_column('created_at',
existing_type=postgresql.TIMESTAMP(),
type_=sa.DateTime(timezone=True),
nullable=True)
if "last_used_at" in column_names:
batch_op.alter_column('last_used_at',
existing_type=postgresql.TIMESTAMP(),
type_=sa.DateTime(timezone=True),
existing_nullable=True)
if "credential" in table_names:
column_names = [col["name"] for col in inspector.get_columns("credential")]
with op.batch_alter_table('credential', schema=None) as batch_op:
if "created_at" in column_names:
batch_op.alter_column('created_at',
existing_type=postgresql.TIMESTAMP(),
type_=sa.DateTime(timezone=True),
nullable=True)
if "updated_at" in column_names:
batch_op.alter_column('updated_at',
existing_type=postgresql.TIMESTAMP(),
type_=sa.DateTime(timezone=True),
existing_nullable=True)
# ### end Alembic commands ###
def downgrade() -> None:
conn = op.get_bind()
inspector = Inspector.from_engine(conn) # type: ignore
# ### commands auto generated by Alembic - please adjust! ###
table_names = inspector.get_table_names()
if "credential" in table_names:
column_names = [col["name"] for col in inspector.get_columns("credential")]
with op.batch_alter_table('credential', schema=None) as batch_op:
if "updated_at" in column_names:
batch_op.alter_column('updated_at',
existing_type=sa.DateTime(timezone=True),
type_=postgresql.TIMESTAMP(),
existing_nullable=True)
if "created_at" in column_names:
batch_op.alter_column('created_at',
existing_type=sa.DateTime(timezone=True),
type_=postgresql.TIMESTAMP(),
nullable=False)
if "apikey" in table_names:
column_names = [col["name"] for col in inspector.get_columns("apikey")]
with op.batch_alter_table('apikey', schema=None) as batch_op:
if "last_used_at" in column_names:
batch_op.alter_column('last_used_at',
existing_type=sa.DateTime(timezone=True),
type_=postgresql.TIMESTAMP(),
existing_nullable=True)
if "created_at" in column_names:
batch_op.alter_column('created_at',
existing_type=sa.DateTime(timezone=True),
type_=postgresql.TIMESTAMP(),
nullable=False)
# ### end Alembic commands ###