Sunny
Авг. 6, 2007 16:08:21
Люди, пробую перейти с 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)
pythonwin
Авг. 7, 2007 07:51:06
Sunny
engine = create_engine('postgres://postgres:1111@localhost/C:/detals', echo=True)
а зачем прописываешь путь?
пример:
postgres://postgres@localhost/testDB
Sunny
Авг. 7, 2007 10:23:51
А кроме psycopg2 и самого Postgre нужно что-то ставить. Он у меня выдаёт ошибку при создании таблиц - говорит что пароль не передан.
pythonwin
Авг. 7, 2007 11:38:25
пароль, то правильно указываешь в конфигах?
postgres://user:password@host:port/tdatabase
Sunny
Авг. 7, 2007 12:26:06
я ввожу имя и пароль обычного юзера
engine = create_engine('postgres://User:zxcvbn@localhost/testDB', echo=True),
а выдаёт он:
ошибка - database “testDB” does not exist
строка - metadata.create_all(engine)
PooH
Авг. 7, 2007 12:44:10
Sunny
я ввожу имя и пароль обычного юзера
engine = create_engine('postgres://User:zxcvbn@localhost/testDB', echo=True),
а выдаёт он:
ошибка - database “testDB” does not exist
строка - metadata.create_all(engine)
ну так базу то testDB, в которой будет создана таблица надо сначала создать на сервере
pythonwin
Авг. 7, 2007 12:58:10
createdb testDB -U пользователь -E=кодировка # UTF8 например
Sunny
Авг. 7, 2007 13:04:54
упс, только теперь понимаю насколько глупый был вопрос. Но всё равно всем большоооое спасибо. просто после элементарной работы с SQlite принципы работы Postgre сразу не воспринимаются.
Я не волшебник я только учусь :)