Форум сайта python.su
Люди, пробую перейти с sqlite на Postgres. При работе с БД использую SQLAlchemy, по идее изменение типа БД влияет только на вид подключения и на докачку спецобработчика, но почему-то создавать таблицу он никак не хочет. Плиззз, скиньте какой-нить примерчик или ссылочку.
Текст выглядит так.
from sqlalchemy import *
metadata = MetaData()
# a table to store users
users = Table('users', metadata,
Column('user_id', Integer, primary_key = True),
Column('user_name', String(40)),
Column('password', String(80))
)
# a table that stores mailing addresses associated with a specific user
addresses = Table('addresses', metadata,
Column('address_id', Integer, primary_key = True),
Column('user_id', Integer, ForeignKey(“users.user_id”)),
Column('street', String(100)),
Column('city', String(80)),
Column('state', String(2)),
Column('zip', String(10))
)
engine = create_engine('postgres://postgres:1111@localhost/C:/detals', echo=True)
##### для sqlite такакя формулировка работала на ура
## self.engine = create_engine('sqlite://localhost/C:/detals', echo=True)
metadata.create_all(engine)
metadata.connect(engine)
Офлайн
Sunnyа зачем прописываешь путь?
engine = create_engine('postgres://postgres:1111@localhost/C:/detals', echo=True)
postgres://postgres@localhost/testDB
Офлайн
А кроме psycopg2 и самого Postgre нужно что-то ставить. Он у меня выдаёт ошибку при создании таблиц - говорит что пароль не передан.
Офлайн
пароль, то правильно указываешь в конфигах?
postgres://user:password@host:port/tdatabase
Офлайн
я ввожу имя и пароль обычного юзера
engine = create_engine('postgres://User:zxcvbn@localhost/testDB', echo=True),
а выдаёт он:
ошибка - database “testDB” does not exist
строка - metadata.create_all(engine)
Офлайн
Sunnyну так базу то testDB, в которой будет создана таблица надо сначала создать на сервере
я ввожу имя и пароль обычного юзера
engine = create_engine('postgres://User:zxcvbn@localhost/testDB', echo=True),
а выдаёт он:
ошибка - database “testDB” does not exist
строка - metadata.create_all(engine)
Офлайн
createdb testDB -U пользователь -E=кодировка # UTF8 например
Офлайн
упс, только теперь понимаю насколько глупый был вопрос. Но всё равно всем большоооое спасибо. просто после элементарной работы с SQlite принципы работы Postgre сразу не воспринимаются.
Я не волшебник я только учусь :)
Офлайн
SunnyУдачи!
Я не волшебник я только учусь :)
Офлайн