Building Data-Driven Web Apps with Pyramid and SQLAlchemy Transcripts
Chapter: Database migrations with Alembic
Lecture: Getting started with Alembic
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Before we actually get started here
0:01
I want to just do a quick sync up on where we are
0:04
on the GitHub Repo and the source code
0:06
that you get for this course.
0:08
So over here in the GitHub Repo, we are now moving on
0:11
to Chapter 11, Migrations.
0:12
We'll be working in Final.
0:14
Start of course, is where we're starting
0:16
final, whatever we're going to do in the end
0:18
that's what it's going to turn out to be.
0:22
Now in order to use Alembic we need it installed.
0:26
We need to make sure that we have the right
0:27
virtual directory, which I've already created
0:30
for this version of our website.
0:33
We need to make sure that it's active.
0:34
So I'm going to say . venv/bin/activate, remember
0:39
forget the dot, scripts not bin, on Windows.
0:42
Alright, so now looks like we're using
0:46
the one in PyPI_migrations. Great.
0:49
In order to use Alembic we have to, well, have it installed.
0:52
So pip install alembic.
0:57
Boom, looks like it's installed. Excellent.
1:01
Now down here you need to make sure that
1:03
you are in the folder that has your PyPI folder
1:07
and the two ini. So this right here is our web app.
1:11
We're going to put this next to our web app
1:13
not actually deployed within the sort of request space
1:17
of our web app. So we have Alembic installed.
1:20
The next thing to do is to
1:21
build some basic project structure.
1:24
And this structure is going to allow us to configure Alembic
1:27
and it will keep track of the various versions
1:29
and how to evolve from one to the other.
1:31
So the way we do that is we invoke Alembic.
1:35
We tell it to init, and we have to give it
1:37
a folder to create
1:38
and the convention is to use the same name Alembic
1:41
so you will see the Alembic folder.
1:45
Here we go, it's gone and created that
1:47
and it's done a couple of things.
1:49
It's created the folder and an Alembic.ini.
1:53
Excellent, so it says we're going to need to edit that
1:57
and that's true, we're going to need to edit that.
1:59
But now if we look over here, we'll see
2:02
an Alembic folder and we'll see an Alembic.ini
2:05
and if we tree Alembic, you can see
2:08
it just has a couple of things.
2:09
It has a read.me, it has a mako
2:13
which is a template it uses
2:14
to generate the SQL statements, actually
2:17
that it's going to run.
2:18
It has an environment, which allows us to plug in
2:21
our SQLAlchemy models
2:23
and it has a versions folder
2:25
which is going to keep track of where things are.
2:28
So as we use Alembic, we'll start to build up things there.