Ако изпращате до Heroku 1.sql
файл, генериран за H2
, има голям шанс те да се сблъскат, вместо това задайте URL адреса на Heroku в application.conf
като db.default.url
и го стартирайте първо в режим на разработчик на localhost, за да генерирате валиден Postres SQL. Също така ще трябва да коментирате db.default.user
и db.default.password
настройки, тъй като URL адресът на Heroku вече съдържа тази информация.
Ако не знаете URL адреса на текущата връзка, ще го намерите на:
https://postgres.heroku.com/ -> YourDBs
-> име на db -> Connection settings
-> JDBC URL
За да се свържете от localhost (или друга машина, която не е в пространството на Heroku), трябва да добавите този параметър към URL адреса:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Благодарение на този подход можете да тествате приложението си локално с установена връзка с отдалечената DB на Heroku, (не се изненадвайте - тази комбинация ще бъде много по-бавна от работата с local app + local DB
или Heroku app + Heroku DB
) така или иначе за тестване е по-добре, отколкото многократно натискане на малки корекции в облака.
Също така ще можете да извършвате еволюции от localhost - без да натискате кода към Heroku и това е наистина по-кратък подход, ако имате проблеми във вашия SQL.
Освен това е добър повод да включите регистрирането на SQL в режим на локален разработчик и да търсите излишни SQL заявки, ако премахнете всички ненужни заявки и ще бъдете доволни на localhost, след внедряване на Heroku, ще бъдете много по-доволни:)
Нулиране
Ако ще създадете правилен 1.sql
файл, отколкото най-вероятно ще трябва да нулирате вашата БД, съдържаща невалидна структура (тъй като предполагам, че това все още не е проблем, тъй като просто преминавате от локално към Heroku). Първо намерете име на DB за текущото приложение (с bash, в папката на приложението):
heroku pg
И след това го нулирайте с (това ще унищожи всички данни, така че първо помислете за архивиране, ако не искате да загубите данните си!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE