2016-02-16 5 views
0

..... мой Postgres БД класс ......Python 3.5 вставить запись в таблицу Postgres на другой схеме

class User(db.Model): 
    """docstring for User""" 

    __tablename__ = 'user' 
    user_name = db.Column(db.String(45), primary_key=True) 
    email = db.Column(db.String(45)) 

    def __init__(self, user_name, email): 
     super(User, self).__init__() 
     self.user_name = user_name 
     self.email = email 

..... когда при попытке вставки я получаю сообщение об ошибке

@app.route('/add_user', methods=['POST']) 
def add_user(): 
    user = User(user_name = request.form['user_name'], email = request.form['email']) 
    print(user.user_name, user.email) 
    db.session.add(user) 
    db.session.commit() 
    return render_template('get_address.html') 

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "user" does not exist LINE 1: INSERT INTO "user" (user_name, email) VALUES ('as', 'sd')^[SQL: 'INSERT INTO "user" (user_name, email) VALUES (%(user_name)s, %(email)s)'] [parameters: {'email': 'sd', 'user_name': 'as'}] 

..... есть несколько схем, которые используются ..... выше класс в схеме называется пользователи

Я думаю, что проблема является разрешением имен таблицы: то есть в база данных, где находится tabl e 'пользователи'? Я предположил, что нужно присвоить таблице «пользователи» с именем схемы __tablename__ = 'users.user'. Это не работает.

... ошибка произведенная:

sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "users.user" does not exist LINE 1: INSERT INTO "users.user" (user_name, email) VALUES ('po', 'p...^[SQL: 'INSERT INTO "users.user" (user_name, email) VALUES (%(user_name)s, %(email)s)'] [parameters: {'email': 'po', 'user_name': 'po'}] 

Я не могу найти на сайте SqlAlchemy.org или где-либо еще какой-либо информации о какой-либо конструкции, которые будут использоваться или как решить эту проблему.

Любые идеи?

ответ

1

Вы можете указать имя схемы с schema argument to Table:

class User(db.Model): 
    ... 
    __table_args__ = { 
     "schema": "users" 
    } 
+0

Спасибо, это сработало –

Смежные вопросы