Adding a CMS to Your Pyramid Web App Transcripts
Chapter: Advanced Markdown templates
Lecture: Marking pages as shared (DB level)
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 virtue 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