Creación de diagramas DBML
Introduccción
Me gusta tener un cuadro de lo que tengo en Mysql. A los largo de los años, ha dio cambiando el formato, las utilidades. Lejos queda el insoportable Workbench de mysql.
Ahora puedo usar TablePlus, pero a la postre muchas veces eso se me queda corto para lo que me gusta.
Asi que ahor aprefioer mantener la logica guardada en formato DBML, lo cual me permite una visión más adecuada, y real de lo que hay y lo que no hay en la app, y que uso a menudo con DBDiagram
db2dbml
db2dbml es una puntenteherramienta para generar un fichero DBML contectando a un servidor o motores de basos de datos.
Un ejemplo abajo de como generar en local el diagrama de mi proyecto.
❯ dbdocs db2dbml mysql 'mysql://root:MYPASSWORD@localhost:3306/lowino?socketPath=/tmp/mysql.sock' -o notas/DBML/lowino.dbml
✔ Connecting to database... done.
✔ Generating DBML... done
✔ Wrote to notas/DBML/lowino.dbml
Tras eso tenemos el codigo en el fichero
Table "advert_properties" {
"id" "bigint unsigned" [pk, not null, increment]
"advert_id" binary(26) [not null]
"property_id" "bigint unsigned" [not null]
"value" text
"created_at" timestamp
"updated_at" timestamp
}
Table "adverts" {
"id" binary(26) [unique, not null]
"user_id" binary(26) [not null]
"category_code" "mediumint unsigned" [not null, default: 1, note: 'without classification']
"title" varchar(80) [not null]
"slug" varchar(80) [unique, not null, note: 'Integrate -YYMMDDNN']
"advert" text [not null]
"price" "bigint unsigned"
"currency_id" "tinyint unsigned" [not null, default: 1]
"details" json
"published_at" timestamp
"expire_at" timestamp
"created_at" timestamp
"updated_at" timestamp
"deleted_at" timestamp
Indexes {
published_at [type: btree, name: "adverts_published_at_index"]
}
}
...
Y con ello ya podemos hacwer y deshacer como queramos, para crear nuestro digrama.
Cierto que tambien TablePlus es casi más eficaz en términos visuales, pero el dbml sirve para nuchas más cosas.
Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris
Si necesitas soporte profesional puedes contratar con Castris soporte profesional.