Я хочу использовать sqlite базу данных памяти для всего своего тестирования и Postgresql для моей разработки/рабочего сервера.
Но синтаксис SQL не то же в обоих dbs. для исключая: SQLite имеет автоинкремент, и Postgresql имеет последовательный
Действительно ли легко портировать сценарий SQL от sqlite до postgresql..., каковы Ваши решения?
Если Вы хотите, чтобы я использовал стандартный SQL, как я должен пойти о генерации первичного ключа в обоих базы данных?
Не делай этого. Не тестируйте в одной среде, а выпускайте и разрабатывайте в другой. Вы запрашиваете программное обеспечение с ошибками, используя этот процесс.
Мое предложение: не надо. Возможности Postgresql выходят далеко за рамки того, что может предоставить SQLite, особенно в областях поддержки даты / чисел, функций и хранимых процедур, поддержки ALTER, ограничений, последовательностей, других типов, таких как UUID и т. Д., И даже использования различных трюков SQLAlchemy, чтобы попробовать чтобы сгладить это, вы продвинетесь немного дальше. В частности, арифметика даты и интервала - это совершенно разные зверюги на двух платформах, и SQLite не поддерживает точные десятичные дроби (не с плавающей запятой), как это делает PG. PG очень легко установить на все основные ОС, и жизнь станет проще, если вы пойдете по этому пути.
Хотя мы начали с sqllite для нашей тестовой среды, мы серьезно надеемся, что postgres будет работать для каждого разработчика. У нас есть сценарии, которые создают тестовую базу данных, с которой работают наши модульные тесты, и у нас есть «разрабатываемая» версия, которую используют разработчики.
Мы исследовали запуск postgres «в памяти» на ramdisk, но это обсуждение: http://dbaspot.com/forums/postgresql/395602-memory-postgresql-database.html предполагает, что это не так. т необходимо.
Мы еще не столкнулись с какими-либо проблемами, но процесс разработки все еще находится на ранней стадии, и нам еще не пришлось делать ничего особенного.
zzzeek указывает на некоторые моменты, которые, вероятно, скоро нас сбивают с толку: (
Лучше сделайте шаг сейчас ....