Adding a CMS to Your Pyramid Web App Transcripts
Chapter: Advanced Markdown templates
Lecture: Marking pages as shared (DB level)
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Well, we have this working pretty well from a functionality perspective, but not from an admin back in nice editing experience over here.
0:09
When we go to our pages, I would like to see here are your top level pages and here is a piece that can be reused.
0:15
And I'd like to see his little name and stuff like that in order for us to do that.
0:19
Though, remember, this is all just a bunch of page objects in the database to seek. Welcome me.
0:24
We need some way to indicate on that page object whether or not it's shared so we could go give that a shot.
0:32
Being come down here and we can say is shared. It's going to be a Boolean who has a default value false. That seems totally reasonable, right?
0:42
And yes, this is how we put it in here. Let's run the code and see how well this works.
0:46
By refresh this page are we don't get a great air message here because we turned off on the bug Tobar. But it doesn't matter. Let's just go down here.
0:54
And what is it going to say that that ah, it's doing some sort of query. No such column is shared. Yikes, that's not good. What's happening?
1:04
Well, the database has this stuff in it and the way sequel alchemy works, it will generate new table.
1:10
So if I made a new class, it would go and create that right away. However, what it will not do is it will not update an existing table.
1:18
It won't add columns to an existing table. Do it's not gonna make this change here.
1:24
In order for us to do that, we have to apply migrations and the tool for sequel coming to do that is a limbic.
1:30
We're gonna do a quick little bit of work with Olympic. To make this change, go across this common this out for a second. So it's in sync to start now.
1:39
There's some older migrations that we don't need to apply here, and I don't think they're properly in the database.
1:46
We haven't been using migrations so far because we haven't needed them. And because we weren't careful, these were kind of out of sync.
1:52
So I'm just going toe, save us some trouble and delete those two files, OK, and the other thing we need to do is make sure limbic is installed.
1:59
So I put that here and weaken. Just pip the requirement, Steph. And get that to install Olympic. All right, Good. Now let's ask which Olympic good?
2:15
It's the one out of our virtual environment that's very good.
2:17
We're gonna need important that library, which is also registered in this virtual environment, do that's important that we can do that.
2:25
And if you're on Windows, you can ask where Olympic, by the way. So let's just see if we can get Olympic Teoh.
2:32
Talk to the database, we say Olympic upgrade head. That means just latest and basically says nothing. That's a good sign.
2:43
We could come over here and we can put this back in, make sure we save it. And we can say a limbic revision.
2:50
Dash dash auto generate with the message and is shared two pages seem s pages. Some like that.
3:00
Alright, let's try this super so what it's done is it's gone and created. This file year, which has no downgrade, is fine.
3:09
But if we upgrade, it's gonna go to this version. What is good and you can see right here.
3:12
It's adding, the column is shared and said it to be knowable by default. All right, let's go and look at the data base.
3:22
But our pages no is shared, right? Right. So the final thing to do that generated the migration, but it didn't apply a migration.
3:30
So this Olympic upgrade head says, Take all the migrations you haven't here and applying to the database. Okay, let's go over here and see what we got.
3:39
Refresh. Oh, yeah, There's a Boolean column and we can go back with our page now having this and run it and see what we get. Our page.
3:47
It was crashing Works Great now. And of course, all the pages do as well.
3:50
So what we need to do next is we need to go and update this to use that is shared property here and let's set it over