[sqlalchemy] Exception: Instance %s has a NULL identity key
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par exécuter le test_insert_row_autogenerate fourni avec les fixtures fix_session et databricks_engine, puis suivez le comportement d’insertion et de flush qui produit la clé d’identité NULL. C’est terminé lorsque la ligne d’exemple est insérée avec succès et que l’identité bigint autogénérée est disponible lors de la requête de la ligne.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I cant get autogenerated identity columns to work.
The table is created just fine, but sqlalchelmy cant insert any rows
Error:
sqlalchemy.orm.exc.FlushError: Instance <SampleObject at 0x7fc694ddbd90> has a NULL identity key. If this is an auto-generated value, check that the database table allows generation of new primary key values, and that the mapped Column object is configured to expect these generated values. Ensure also that this flush() is not occurring at an inappropriate time, such as within a load() event.
Sample code:
from sqlalchemy import create_engine, text, Column, BigInteger, String, Identity
from sqlalchemy.orm import Session, DeclarativeBase
from sample import databricks_engine
@pytest.fixture()
def fix_session():
engine = databricks_engine()
try:
with Session(engine) as session:
Base.metadata.create_all(engine)
yield session
finally:
with Session(engine) as session:
rollback_query_kopf = text("DROP TABLE dummy")
session.execute(rollback_query_kopf)
session.commit()
class Base(DeclarativeBase):
pass
class SampleObject(Base):
__tablename__ = "dummy"
bigint_col = Column(
BigInteger, primary_key=True, server_default=Identity(), autoincrement="auto"
)
str_col = Column(String)
def test_insert_row_autogenerate(fix_session):
sample = SampleObject(str_col="test")
fix_session.add(sample)
fix_session.commit()
actual = fix_session.query(SampleObject).first()
assert actual
- Langage dominant
- Python
- Étoiles
- 233
- Forks
- 152
- Merge moyen
- 21 h 5 min
- PR mergées (30 j)
- 10
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de databricks/databricks-sql-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Toutes les issues de databricks/databricks-sql-python
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
anthropics/skills#1811 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
speaches-ai/speaches#678 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
datalayer/mcp-compose#42 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
UKGovernmentBEIS/inspect_evals#2523 ·