Skip to content

Educentr/go-activerecord

Repository files navigation

ORM

Схема Active Record — это подход к доступу к данным в базе данных.

Таблица базы данных или представление обёрнуты в классы. Таким образом, объектный экземпляр привязан к единственной строке в таблице. После создания объекта новая строка будет добавляться к таблице на сохранение. Любой загруженный объект получает свою информацию от базы данных. Когда объект обновлён, соответствующая строка в таблице также будет обновлена. Класс обёртки реализует методы средства доступа или свойства для каждого столбца в таблице или представлении.

см. так же:

ToDo

  • Добавить ENUM типы данных. В описании используется специальный тип ENUM (можно дженерик), в нем перечисляются все возможные значения. На выходе получаем набор констант, а в мете для создания таблици получаем свой тип, при изменении получаем альтер.
  • Сделать генерацию sql схемы для создания БД. Так же надо сделать утилиту для создания миграций и сохранения её в БД. Миграции создаём на основании дифа с мейном.
  • Сделать проверку, что все объекты удовлетворяют интерфейсу *queuetaskresult.QueueTaskResult. Нужно, для того что бы в тестах сразу отлавливать эти случаи, иначе ломается только тогда. когда используешь связанные объекты.
  • Возможно надо объеденить шаблоны, что бы копипасты было меньше. Например link.tmpl сейчас это просто копипаста. Тут можно обойтись симлинками или сделать раздел в котором лежат общие шаблоны. С симлинками надо убедиться, что всё это нормально будет работать например под windows. Общие шаблоны тоже могут стать камнем приткновения, когда везде надо одинаковое, в а одном из 100 драйверов, что то другое. Можно обойтись какими то переопределениями, если имена пересекаются то более правильный файл в драйвере. var _ activerecord.ModelStruct = (*_bla_)(nil) в main.tmpl
  • Переименовать fieldnum в частично индексе в fieldcount. Желательно поддержать обратную совместимость и подсвечивать о том, что поле Deprecated

About

Yet another ORM for go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages