sqlalchemy.exc.IntegrityError продолжает происходить, и мне нужно удалить файл БД и миграции, чтобы исправить это - PullRequest
0 голосов
/ 19 декабря 2018

У меня по-прежнему странная ошибка, и мне нужно удалить базу данных, удалить миграции и начать заново, чтобы исправить ее.Он работает какое-то время, затем ошибка просто повторяется.Кто-нибудь может увидеть проблему?

Это ошибка:

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: organisation.phoneWork [SQL: 'INSERT INTO organisation ("orgName", "emailWork", "emailHome", "emailOther", "phoneWork", "phoneMobile", "phoneHome", "backgroundInfo", "postalStreet", "postalTown", "postalState", "postalPostCode") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'] [parameters: ('asdfasdf', '', '', '', '', '', '', '', '', '', '', '')]

Это маршрут:

@app.route('/organisation_add', methods=['GET', 'POST'])
@login_required
def org_add():
    form = addOrganisationForm()
    if form.validate_on_submit():
        organisation = Organisation(orgName=form.organisationName.data, 
                                    emailHome=form.emailHome.data, emailWork=form.emailWork.data, emailOther=form.emailOther.data,
                                    phoneWork=form.phoneWork.data, phoneMobile=form.phoneMobile.data, phoneHome=form.phoneHome.data, 
                                    backgroundInfo=form.backgroundInfo.data, 
                                    postalStreet=form.postalStreet.data, postalTown=form.postalTown.data,
                                    postalState=form.postalState.data, postalPostCode=form.postalPostCode.data)
        db.session.add(organisation)
        db.session.commit()
        flash('You added a new organisation')
        return redirect(url_for('organisation', orgId=1))
    return render_template('organisation_add.html', title='Add Organisation', form=form)

Это модель:

class Organisation(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    orgName = db.Column(db.String(64), index=True, unique=True)
    emailWork = db.Column(db.String(120), index=True, unique=True)
    emailHome = db.Column(db.String(120), index=True, unique=True)
    emailOther = db.Column(db.String(120), index=True, unique=True)
    phoneWork = db.Column(db.String(120), index=True, unique=True)
    phoneMobile = db.Column(db.String(120), index=True, unique=True)
    phoneHome = db.Column(db.String(120), index=True, unique=True)
    backgroundInfo = db.Column(db.String(1024))
    postalStreet = db.Column(db.String(128), index=True)
    postalTown = db.Column(db.String(64), index=True)
    postalState = db.Column(db.String(12), index=True)
    postalPostCode = db.Column(db.String(8), index=True)

Очевидно, что есть и форма.

Что могло бы предотвратить это?Я не могу просто удалить базу данных и миграции, очевидно.Любая помощь будет принята с благодарностью.

...