[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Artanis] Foreign Key for Migrations
From: |
Nala Ginrut |
Subject: |
Re: [Artanis] Foreign Key for Migrations |
Date: |
Sun, 17 Mar 2019 04:31:11 +0800 |
User-agent: |
mu4e 1.0; emacs 25.1.1 |
Hi Jonathan!
Sorry it's my mistake to neglect this part in the doc.
You don't have to take care of the DB connection management by
yourself. You may just use `art draw model person' to create the named
mapping to the "person" table, and there's an exported relational
mapping object named "$person", you may import (app models person) in
other controller to use it. It's based on FPRM, but the table name has
already been wrapped into the closure:
https://www.gnu.org/software/artanis/manual/manual.html#orgeff2a47
And maybe read its implementation is clearer to you:
https://gitlab.com/NalaGinrut/artanis/blob/master/artanis/mvc/model.scm#L226
The usage should look like this:
($person 'set #:name "nala" #:age 100)
BTW, please don't forget to config your DB in conf/artanis.conf first.
Best regards.
Jonathan Schmeling writes:
> Gotcha. That makes a lot of sense. Thanks a ton for explaining!
>
> Database related, is there a way to query the database from one of the
> controller -define methods (like (article-define show …) in the online
> documentation)? Using the function map-table-from-DB causes an error and
> attaching #:conn #t, like with the get function, also causes an error. Doing
> something like (:conn rc "SELECT * FROM PEOPLE") seems to work (or, at least,
> not throw an error) but I'm not sure what gets returned. The doc. says the
> returned value is described at
> https://www.gnu.org/software/artanis/manual/manual.html#org8ba121f but that
> section says "TODO".
> As always, any help is always super appreciated!
>
> Jonathan
>
> On 2/17/19 12:19 PM, Nala Ginrut wrote:
>
>
> Hi Jonathan!
> I'm glad you asked this question.
> The answer is actually written in the fprm.scm code comments that the
> relational mapping in Artanis is not going to provide database level
> foreign keys. The solution is to provide higher-abstract-level table
> operations as a replacement to save users to time to handle by
> themselves.
>
> The pros and cons of foreign keys are discussed a lot in the
> internet. The modern ORM may choose to drop foreign keys and provide
> higher layer for it.
>
>
> Unfortunately, this feature has not been implemented yet because of my time
> schedule.
>
> Of course, this issue is still open, the original plan is more
> ambitious. I think it's the time to add more features to the relational
> mapping framework.
> Welcome to discuss if you like.
>
> Best regards.
>
> Jonathan Schmeling writes:
>
>
>
> I'm not sure if it's been asked before but I couldn't find any mention
> in the doc. – is it feasible to define foreign keys for the create-table
> function? I want to reference another table's primary keys from a
> particular table, to link them.
>
> Jonathan
--
GNU Powered it
GPL Protected it
GOD Blessed it
HFG - NalaGinrut
Fingerprint F53B 4C56 95B5 E4D5 6093 4324 8469 6772 846A 0058
signature.asc
Description: PGP signature
- Re: [Artanis] Foreign Key for Migrations, Jonathan Schmeling, 2019/03/11
- Re: [Artanis] Foreign Key for Migrations,
Nala Ginrut <=
- Re: [Artanis] Foreign Key for Migrations, Jonathan Schmeling, 2019/03/17
- Re: [Artanis] Foreign Key for Migrations, Nala Ginrut, 2019/03/17
- Re: [Artanis] Foreign Key for Migrations, Jonathan Schmeling, 2019/03/17
- Re: [Artanis] Foreign Key for Migrations, Nala Ginrut, 2019/03/18
- Re: [Artanis] Foreign Key for Migrations, Jonathan Schmeling, 2019/03/22
- Re: [Artanis] Foreign Key for Migrations, Nala Ginrut, 2019/03/24