Rodegast
Я с хостингами уже лет 10 как не сталкивался. В любом случае эта проблема решается заменой хостинга на более адекватный.
Не, это делается по-другому. Ты делаешь абстрактный исполнитель, который абстрактно работает с абстрактной базой данных. Ты не делаешь PostgreSQL, потому что она может не сработать где-то в какой-то установке, а ты PostgreSQL подключаешь к этому абстрактному исполнителю и оно работает, пока это разрешено и получается. Как только PostgreSQL надо сменить, ты его меняешь спокойно и всё, переливаешь данные в другую хрень, которая там понадобится. Просто подключаешь другую СУБД к своему абстрактному исполнителю. Так как он абстрактный, то он абстрактно работает с абстрактной базой данных через абстрактную СУБД. Поэтому всё это возможно делать. Понимаешь, да, что такое полиморфизм? Вот это полиморфизм. Благодаря этому устройству можно написать один код, который как-то определённо надёжно работает, но при этом натянуть его с самого начала на что угодно и иметь при этом возможность перенатянуть его в любое время на любую другую хрень любого вида и с любыми особенностями. Можно и с несколькими абсолютно разными базами данных сразу одновременно работать через один и тот же код, но ты пока маленький, чтобы такие вещи понимать и выстраивать в голове, у тебя пока только одна база данных и всё. То есть думать параллельными полиморфными структурами ты пока не умеешь.
А то, что ты предложил ему, - это “я предлагаю PostgreSQL”. Вот тебе сегодня её можно на хостинге, а завтра тебе говорят “а теперь давай $100 плати, мы передумали, она теперь не бесплатная у нас”. Ты хочешь уйти с хостинга, а у тебя там целая гора всякой хрени на этом хостинге, так просто не переведёшь это всё. И вот ты думаешь… а они же тоже не дураки, знают, что тебе предлагать. Они знают, что ты зависим от PostgreSQL, и они тебя спокойненько обрабатывают в связи с этим. А когда у тебя нет такой зависимости, они начинают тебя обрабатывать, а ты раз и переключился на другую фигню спокойно. Просто классы перенастроил и всё.
Для того и ORM эта нужна. Она вообще не привязана ни к чему.
Rodegast
В любом случае эта проблема решается заменой хостинга на более адекватный.
А если это уже самый адекватный? Неужели ты думаешь, что все себе выбирают наихудшие хостинги и сидят на них до посинения? Нет, бывает вот, что какая-то тупорылая хуйня начинает с тебя вдруг брать плату. Это в Slack'е так было. Было сначала всё нормально, а потом туда кто-то пришёл на работу и началась другая политика типа “мы о вас решили позаботиться типа, поэтому мы вам всё урежем сейчас и вы нам тогда заплатите, чтобы мы вам это обратно открыли”. Идиоты. Такое впечатление, что они наняли менеджера, который из какой-то конкурирующей фигни пришёл их специально замочить, просто разложить их в пыль. Что ни нововведение, то какая-то хуета вот такая. Изначально они себя позиционировали как заменитель электронной почты, прямо это как электронная почта, только лучше. Но это продержалось только два-три года всего, а потом началось такое, что это никакая не электронная почта даже близко. В электронную почту никакой дебил не может прийти с улицы и начать всю политику по всему Интернету менять. Она как раз останется неизменной. Вот в этом они просчитались. И поэтому нахуй пошли. Я на Discord сразу перешёл и перевёл всех. Сейчас про этот Slack даже не вспоминаю. А то вот они позиционировали себя чуть ли не новой эпохой Интернета. Ну обычные дебилоиды из разряда тех, которые Linux хотели платной сделать. Тоже кучка дебилов каких-то, которые нахуй никому не нужны. В итоге Linux бесплатная, а где они все?
Так что ты плохо себе представляешь, как эта вся поебень там работает. Могут тебе сказать, да вот PostgreSQL - это классно, конечно, хотелось бы, но вот у нас его нет, мы не можем его поставить, давай другое. И вот ты сталкиваешься с тем, что у тебя для PostgreSQL'а всё написано. И что ты будешь делать? Ну и всё, твоя прога не работает.
Я вот под Windows не пишу, хотя там то же самое возникает “а дай нам версию под Windows”. Но я-то знаю, что Linux всегда можно поставить, потому что? потому что она бесплатная. Её не надо покупать. Весь Интернет на ней работает, на её прогах, которые и на BSD портированы все напрямую. Так что в этом проблем нет, оно не может быть заблокировано в Интернете. Если там блокируют Linux, то там точно идиоты какие-то и с ними просто не надо работать.
А вот PostgreSQL - это да, вместо неё есть куча других СУБД и баз данных. И какая там будет, хер его знает. Поэтому от этого мы абстрагируемся. Защищаем программу от конкретных деталей.
Rodegast
Вот поступит тебе команда “получать данные не из БД, а из API” и что ты будешь делать?
А ты думаешь, у меня программа знает, что она из базы данных данные берёт? Она не знает, она берёт от интерфейсов что-то там, а куда они там прикреплены, она не в курсе.
Rodegast
А все из за того что используя ORM ты не можешь абстрагироваться от источника данных.
Не, к ORM'у прикреплен интерфейс. ORM - это просто исполнитель. Его можно заменить в любой момент на другой ORM. Для того эти интерфейсы-то и делаются. Ты общаешься с интерфейсами и всё, а куда они прикрепляются - сегодня туда, завтра сюда - ты не в курсе. Ничего не меняется в плане работы с ними.
Rodegast
А как же таблицы с миллионами строк?
В его случае оставляется всё, что он там наплодил. Ты говоришь “надо цикл какой-то там делать”, не надо ничего делать. Это минимальное изменение, чтобы ему всю хуйню не переписывать. Так-то да, надо смотреть, что он там вообще делает. Может, он неправильно вообще всё сделал.
Ты говоришь “а давайте ещё вот к этой всей хуйне неправильно ещё и PostgreSQL добавим”, а зачем? Чтобы ещё больше наворотить? Это не решение.
Rodegast
Если ты в чём то не разбираешься, то лучше промолчи
Ну вот как раз ты и не знаешь. Хотел бы что-нибудь сказать, а что тут скажешь, если у тебя элементарных знаний нет. Ты даже интерфейсы не освоил, не понимаешь, что это и зачем они нужны. Приходится вот тебе рассказывать тут. Книг-то ты всё равно не читаешь, они там все на английском. А по-русски таких книг не пишут, только доисторические.