go-activerecord

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2025 License: MIT

README

ORM

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

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

см. так же:

ToDo

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

Directories

Path Synopsis
cmd
internal
app
Пакет app - основной пакет приложения.
Пакет app - основной пакет приложения.
pkg
iproto/context/ctxlog
Package ctxlog contains utilities for logging accordingly to context.Context.
Package ctxlog contains utilities for logging accordingly to context.Context.
iproto/util/bufio
Package bufio contains tools for reusing bufio.Reader and bufio.Writer.
Package bufio contains tools for reusing bufio.Reader and bufio.Writer.
iproto/util/io
Package io contains utility for working with golang's io objects.
Package io contains utility for working with golang's io objects.
iproto/util/time
Package time contains tools for time manipulation.
Package time contains tools for time manipulation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL