Transcript
-
Okay, so our next focus is going to be Lucid, AdonisJS's ORM. It's going to allow us to easily communicate,
-
structure our database directly from our application. It also comes with a query builder built atop of ConnectJS that we can easily use to query various
-
and depthful information from our database. Now, when we created our project, AdonisJS started us off ready to go if we dive into our config database file with SQLite.
-
However, I'm going to be using Postgres and we're gonna cover how we can switch this configuration over to Postgres, or if you're using MySQL or MSSQL or one of the other supported drivers,
-
you can use the same approach to switch to that particular driver as well. Lucid's going to wrap everything regardless of the driver that we use so that we have one standardized API to work with.
-
So it really doesn't matter at the end of the day what particular driver you're working with. The only instances where that would matter is whenever you're running raw SQLs against the database using some feature that's not supported
-
within one of the other drivers. So for the most part, we're a-okay to use whatever driver we need to get going here. If you're using SQLite, you can skip this next portion,
-
but since I'm using a different driver, I'm going to want my database configuration to be reconfigured. So what we're going to do is delete our database config altogether.
-
So let's just delete this out of our config directory, move it to the trash. Now, Lucid is already installed, but we will want to reconfigure it. So let's dive back into our terminal here,
-
stop our server, we can clear that out, and let's run node ace configure@adonisjs-lucid. Again, this was pre-installed whenever we created our web application,
-
so we're good to just go ahead and run configure here without the installation step. It started us off by default with SQLite. I'll be using Postgres if you're using MySQL or MSSQL,
-
you're okay to go ahead and select that appropriate driver. Again, I'm going to be selecting Postgres here. We'll have it go ahead and install the required packages for that. It's going to update our config, which we just deleted.
-
It won't overwrite the config, which is why we deleted it, so that it will create a new file for it. It updated our adonisrc.ts file, updated our EMV, updated our start EMV,
-
installed the packages that we'll need, including but not limited to types for Luxon, which is the date/time package that AdonisJS uses for Lucid, Postgres, and Luxon as a whole. Cool.
-
So before we start our server backup, we have those new EMV variables that we need to take care of. So let's first dive into there. So let's scroll down to our .emv file. And if we scroll down just briefly here,
-
you'll see that we have one for dbhost, dbport, dbuser, password, and database. Now, within the second lesson of this series, we went through and used pgadmin to create a new table
-
called Adonis6, particularly for this series. So by default with Postgres, everything here is going to be a okay. We'll want to use our local host for the host.
-
The port should be by default 5432. The user should be Postgres, unless you particularly changed it. And the password should be whatever password it is
-
that you selected whenever you created your Postgres user. So for example, the one that I used is simply just password since we're on our local machine.
-
It doesn't really need to be particularly secure at this point in time. Just needs to be something so that we can get in and work with our database. And then our db database is going to be the name of the database that we created.
-
Ours was Adonis6, or maybe it was AdonisJS6. Let's jump back into pgadmin. And yeah, it was just Adonis6 right here. So we'll leave that as is.
-
So we should have Lucid all configured up now. We have our environment variables defined. If we jump within our start directory and take a look at the emv.ts, scroll down a little bit here.
-
We have variables for connecting to the database connection. We have all of these, they are all required. So we're a-okay there. Well, except for the password, that one's optional, but still, we're a-okay there.
-
Let's scroll up to our new configuration and take a look at that. So our database config, you can see the connection set to Postgres. We have a connection information for Postgres. The client's defined as pg.
-
And here's where it's defining all of the connection details using our environment variables. We'll talk about migrations here in a little bit, but we have a couple of config options for this as well, including how to sort it.
-
And where they are. As you can see, they're going to be placed within our database migrations directory. Okay, cool. So it's as easy as that. We're ready to move forward and start working directly with our database in the next lesson.
-
However, first, let's define the schema for the actual database that we're going to be working with.
Configuring Lucid and our Database Connection
We'll learn how we can configure Lucid to use a different driver other than SQLite; PostgreSQL is shown but MySQL and MSSQL are much the same. Then, we'll set up our connection details so that we can successfully connect to our database.
Join the Discussion 4 comments
-
Hi,
First, thank you for your video ! That's very clear.
around , you say "within the second lesson of this series, we went through and used pgadmin to create new table" … But I've been doing the whole "second lesson" but I did not see when we used pgadmin in here. Did I miss something ? Were can I find the tutorial were you set up the database ?thanks
1-
Responding to pierrick-chauvet
Hi Pierrick, thank you for watching!
You can find this within lesson 1.1 - "What We'll Need Before We Begin." At the mark, we created the database "adonis6" for use in this series, I apologize; it seems I misspoke and said table in this lesson when I meant database.
1
-
-
Hi Tom,
I usually work with SQLite or Postgres, but I was wondering if there was a way to work with a NoSQL solution (like Firebase) on Adonis since Lucid seems to be a SQL-only builder?1-
Responding to n2zb
Hi n2zb! Yeah, absolutely! I haven't done it myself, but it is definitely possible. AdonisJS is still using NodeJS at the end of the day, so you could use Firebase's NodeJS SDK so long as it works with NodeJS v20 or later & supports ESM.
Now - it won't work out of the box with a few AdonisJS packages that rely on Lucid, like:
Auth - though it can be configured with a custom guard
Bouncer
Limiter - though it'd work with Redis
Likely others
1
-