Ich habe diese Methode eine zufällige Benutzer-ID zu erstellen:SQLAlchemy drückt die gleiche Standard-ID auf Schaffung
import random
import string
def generate_id():
size = 9
chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
return ''.join(random.SystemRandom().choice(chars) for _ in range(size))
Und dieses SQLAlchemy Objekt für einen Benutzer:
class User(db.Model, UserMixin):
__tablename__ = 'user'
id = db.Column(db.String, primary_key=True, default=generate_id())
name = db.Column(db.String(255))
# ...
Mein Problem ist: manchmal ist es funktioniert gut (einige Leute schaffen es, sich anzumelden und einen neuen Benutzer ohne Probleme zu erstellen) und manchmal wurde das generierte default
für user.id
bereits verwendet und löst diesen Fehler aus:
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: user.id
Dieser Fehler tritt mindestens in der Hälfte der Zeit auf.
Yeah! Macht viel Sinn. Wusste nicht über den Callable Default! Du hast meinen Tag gerettet :) – Jivan