Ответы здесь соответствуют до вопроса, но я собираюсь ответить на вопрос, который Вы не задавали. "Я должен использовать усеченный или удалить?" При удалении всех строк из таблицы Вы будете обычно хотеть усечь, так как это намного намного быстрее. Почему это намного быстрее? По крайней мере, в случае Oracle, это сбрасывает метка паводка . Это - в основном разыменование данных и позволяет дб снова использовать его для чего-то еще.
Обратные косые черты не являются допустимыми escape-символами для строк компонентов URL. Вам нужно URL-кодировать часть пароля в строке подключения:
from urllib import quote_plus as urlquote
from sqlalchemy.engine import create_engine
engine = create_engine('postgres://user:%s@host/database' % urlquote('badpass'))
Если вы посмотрите на реализацию класса, используемого в SQLAlchemy для представления URL-адресов подключения к базе данных (в sqlalchemy / engine / url.py
) , вы можете видеть, что они используют тот же метод для экранирования паролей при преобразовании экземпляров URL в строки, и что код синтаксического анализа использует дополнительную функцию urllib.unquote_plus
для извлечения пароля из строки подключения.