 So this is an introduction to Drush for site builders or anyone else who just really wants to know about this cool thing they keep hearing about Drush. Every time I practice this, it's worked until now. It's typical. I'm Karen Casio, better known throughout the Drupal community and pretty much anywhere on the web. You can find me at Tech Girl Geek. So you can connect with me pretty much anywhere using Tech Girl Geek. I'm going to figure out why I'm not connected here. I'll show that one more time. I'm a backend developer working at an design group in beautiful Denver, Colorado. We're an internet strategy design and development company. So we do the full gamut, working for NGOs and people doing great things all over the world, mostly nonprofits. We're also hiring, so if you're considering moving to Denver, Colorado, come see me or Lydia at our booth and drop off your resume. We're growing our team. It's a great place to work. So where does the name of my meetup come from? Do I really need it? I gave a presentation similar to this at a meetup in Denver or actually in Boulder, Colorado a few months back. Somebody raised their hand and asked me promptly, Drush, do I really have to use it? Good answer. I told that person, I'm not going to even answer that. I'm going to go through the presentation. I'm going to let you answer that by the end of this presentation. And if you still think you don't need to use it, then I didn't do my job right. This is so frustrating. We're supposed to work. Oh well, what do you do? So how many of you have heard of this Drush thing? Awesome. How many have used Drush? That's a pretty good number. Hopefully I won't bore those of you who've already used it. And so we're going to talk about why to use it and do you really need it? Absolutely really need it. I can't believe this didn't work. So sad. So basically Drush, what does it stand for? It's the Drupal shell. So it's running Drupal commands through the shell. If you go to Drush WS, you can actually find all these definitions. And of course these slides will be posted in the session recorded. So it really comes in three main parts and it's the project management section, which kind of allows you to manage your project. So it's managing your modules, what's installed, how to install it, installing things, disabling modules, enabling modules, upgrading modules. So I think we've got Drush Core, which is managing the core parts of Drupal, obviously. And then the SQL commands, where you can actually right from the command line get straight into your database, or you can actually run queries right from the command line. Yay, I got it. Finally. Yay. How do we get to Drush? Drush is a command line tool. I heard rumors somewhere that someone made a UI for it. I've never seen this. So if anyone's seen it, has anyone ever seen the UI for Drush? I think it was like two years ago there was a rumor it was actually coming, but I've never seen that. And I don't know why you'd want it. If you're on Windows, there is a good link on how to get it installed on Windows. I've never successfully ran it in Windows. I also don't run Windows often, so can't really talk to that much. macOS is terminal, if you're in Linux, obviously, you're usually on the terminal, so it should be accessible pretty easy. Installing Drush, this session is not going over installing Drush. I'm going to do a buff from one to two at Dressing Room Congress Hall, and we can go over different ways to install Drush. Bring your ideas to, if you know, but rare ways. There is no one way to install Drush. Pretty much like everything in Drupal, there's multiple ways to install Drush. But there are the recommended ways, of course. Of course, if you don't feel comfortable doing it yourself, because it's all command line stuff, you can always talk to your system administrator or somebody on your team, they'll make sure it will help you. Some of the things we're going to go over is downloading and installing and enabling modules, which is probably some of the biggest pain points, and take some of the longest times in the UI. Updating sites, not having to go through and disable everything, update. It can be a really long process. Drush can make it super quick, super easy. It backs everything up for you. Clearing cache, and if you don't know what caching is, that's holding all of your fun little things in memory. And if you know if you're building a brand new site, as things get changed, you have to clear those caches often. And it can be kind of a pain getting to the performance page, finding that button, show you how to do that in one fail swoop. And some other fun things, it's like archiving your sites. And then we'll go into, if we still have time, we'll go into a few more advanced things about creating like aliases, shortcuts on getting to certain things in Drush. But that's more advanced, and that's kind of, I'll have it in my slides so you can refer to it if we don't get to that. But I want to make sure there's time for questions if you have questions later. So site building in Drush. How many people just a poor dread going to that modules page? I know I do. Okay. If you don't already, I'm going to make sure you do by the end of this discussion. Because it can be really daunting really fast. How about updating sites? That's kind of scary. How many of you have let a couple of those little security updates slip for a while because it's going to be a real pain to have to update those modules manually? Come on, admit it. You've let those slide, see? So let's take a look at what it takes just to update a module. First of all, we're going to do it manually. And basically all we're going to do is install views. But I'm going to start with, I've already downloaded the tar file for views. Sorry, this is a little small. Most of them I've redone, but this one I didn't. So I've already got views downloaded. As you can see. So now we're going to go back to the UI. I've created a little demo page. Now we're going to bring up the modules model, modal. I can't say that word. Now we have to go through and we're going to go and find our views. So we can enable it. But we can't enable it because it's got a dependency. We need to go ahead and get C tools, which I haven't downloaded yet. So now I need to go to the project page for C tools. I need to find my C tools and I'm going to have to download the tar file. And I use a little tool called Wget. If you're not familiar with the command line, you may not know Wget, but it's basically downloading it from the command line. So I'm going to pull it down. Now I'm going to untar it. Now I'm going to go back to my module, modal. And I have to refresh the page. Now I'm going to look for C tools and look for views and enable them again. And we're going to save our configuration. And now they're enabled. Now, mind you, that's only two. You just started building this site and you know that you have ten modules you want to enable. That's going to get really tedious. You have to go through and you have to make sure the dependencies are available. So these are the steps I just went through. And of course, you see, rinse, repeat. I'm going to assume we've done it. Unload it, uncompress it, enable it, find the dependencies, rinse, repeat. And you have to keep doing this, right? And then very quickly that modules page, as we know, gets incredibly long in finding stuff. And sure, there's modules that can make it a little cleaner, but it's still, it gets daunting. So let's go ahead and see what that looks like in Drush. We're going to go ahead and download the views. And I'm going to go ahead and enable views. But I have to spell it right. I used a flag, which is the switch, the minus y, and it's telling it everything that you asked me, just go ahead and do it. So now see that it found that it needs C tools. So it went ahead and got C tools for me. And it went ahead and installed views UI. And we're going to go through the PM list here in a minute. But I want to see, did I actually enable it? Sure enough, there it is. It's enabled and C tool. So what's that? Two minutes versus 10 minutes or five minutes? Right away, you've just saved how much time? I'm showing you, you can do it the same way. Clear our screen. You can do, it's done. You can chain those together. So you could literally have a line. So you could do Drush, DL, or PM download, dash download. You could have six modules spaced by, as long as you have the name spelled right. That's the key. So you sometimes still have to go to the project page and you still have to find exactly the spelling. It's underscore if it's just one long name. But apart from that, once you've got that, you can string as many together as you want. Makes it a little faster? A lot faster. Now, let's say, whoops, what, what, sorry. Sorry. Anytime you see the dollar sign, that's me representing a prompt, in case you didn't realize that. So you can also uninstall and disable and uninstall modules the same way. Super fast. You don't have to go through that list. Disable one and it's like, oh wait, I can't disable views because, or can't disable C tools without disabling views. Or, I'm sorry, the other way around. You have to make sure all the dependencies are met. We can do this. I actually did one the other day. We moved a site live and we realized that we weren't going to run Apache Solar, so I wanted to turn off Apache Solar. I did not have access to Drush, so I had to go through the UI, which I never do. Ten minutes later, I'm still trying to find dependencies because I couldn't figure out like the screen didn't refresh or something. It took me quite a while, whereas if I had command line, it would have been one command I would have been done. So let's really quickly see what it's going to take to disable our C tools and views. Basically, I can disable them both at the same time. Again, I've given it the minus Y switch and it disables all of them. So if I disable views, it's going to disable views UI because it's a dependency. If I disable C tools, it's going to disable views because views is dependent on C tools. And then you uninstall it and then you can delete them. The PM uninstall, there is no shortcut and it doesn't do the dependencies. You have to do one at a time, which is what you see me doing here. Now, getting help for Drush. What if I forget my commands? Is there a way to get help? Well, of course. It's command line. It's something in Drupal. You think it's documented? It actually is. It's incredibly well documented. If you go to Drush.ws, that website has all kinds of great examples, great documentation. It's actually kept up to date, pretty much. So if you're looking for a good resource, there's Drush.ws. There's an IRC channel, Poundrush. But it can also do some command line stuff and get help, which we'll go ahead and do a short demonstration on that. So Drush.help is just basically going to give you every single command that's available in Drush. And there's a few of them. Many modules also have Drush components. So if you install features, you'll see a bunch more Drush options if you do Drush.help. So here, I'm just kind of scrolling through all of them. It's going pretty quick because there's too many to go over individually. You see, there's one or two things you can do with Drush. I'm just literally hitting the tip of the iceberg in this presentation. If you think this is comprehensive or you're going to walk away and just completely know how to use Drush, it's no way. Feel free to go home and play. We're back to your hotel room. Oh, sorry. I actually meant to pause that. Oh, sorry. I guess I didn't know how to go through that faster. I'm sorry. I'm going to do a quick repeat on some of that. The second part of that is actually going through the Drush download or PM download help. I missed the prompt when it started doing that. I thought I could stop it. At the bottom of it, so anytime you do a Drush help, it gives you everything, but you can then you can do Drush help, a command where I do Drush PM download. And it gives you the switches or the flags that you can do for any command. So like PM download. I piped it to more so you can see it goes more slowly. And sorry, this is not going slowly. So right here, Drush help PM download. And I'm telling it to go to more so that it goes a little bit more slowly and showing you the different things you can do. You can set a destination. You can change the name. You can download a different version of a module. You can download the whole of Drupal, which we'll show later on. And at the end of most commands, you'll see an alias. So Drush PM dash download. You want to type it shorter. DL. So another one, Drush help cache clear. Like I said, you can clear cache. Building a new site every hour. Most of the switches have to do with what you're clearing. So cache clear and no adding nothing. It'll give you a choices. So you could clear menu cache, theme registry, or actually Drush clear, actually clear cache of Drush's own cache. And CC all does exactly the same thing. Sorry about that. So some basic things to know. Some basic commands. Drush cache clear, which we just went over. Something I use multiple times a day. Drush up. And I'll show you a little update demo here in second. Great way to update modules super quick. You can, again, update multiple modules. In my demo, I'm going to only show you one. But if you basically typing Drush up in return, it goes through and it gives you every single thing that needs, it checks every single module on your site. And you can do just security updates, just core, core and modules. I never suggest doing them all at the same time. You want to go ahead and do it in pieces so you can roll back. And Drush is really nice and does backups for you. You can actually update just the database. So if you know you've just done something and you need to check the update of the database, Drush update DB, or update DB, does the database from the command line. You don't have to go and find the right command. You don't have to log in as user one. It's all working as user one on the command line. Drush ULI or user login. If you just do Drush ULI, it's going to log you in. It gives you that one-time prompt and it gives you user one. If you want to test as user 67, you can say Drush ULI and another username that's on your site, and it's going to give you that one-time login link for that one person. So you can log in and test one of your users without having to go in and change their password. So you're playing with your site. You know you're going to make some huge changes, but you're scared you don't want to break your site and you want to be able to roll back really quickly. Drush Archive Dump, or Drush ARD, does an archive of every single one of your files, the code, and the database into one big file. So now you have a backup. You don't have to sit there and worry about, oh, my God, if I break this, I'm going to have to reinstall everything. You can actually play around with your site and then you can do an archive, restore ARR and put it back to where it was before. Now I know how to do it properly. And Keynote failed me again. Curses to the person who said, this is going to save my life. So project management commands. I went over those a little bit. You've seen a little bit of that in some of my demos with the list and updates. The project management commands helps you manage your project, your project being your site, in this case. A PM list, lists of all modules available on your site and there's kinds of fun switches we can do with a PM list. And PM info, information about modules available on your site. So one of the switches we're going to look at is dash dash core or dash dash no dash core. So I want to see site modules, the status of a module in core or status of a module that isn't a core module. Let's see what this has got for us. Here's our little demo. Trash PM list and I'm doing it outright at first. Let's see what we can do with it. So we can find out which ones are enabled, which are not enabled. It's a module or a theme. So we're going to look at all enabled modules and themes on the site. Now let's see all enabled themes, which is just bar tick and seven right now. Yeah. Did you just uninstall it? I did uninstall it. It's not enabled. They're not enabled. Oh, you know what? I did, but they're not necessarily connected. Like I did them in different orders. So at the time that I recorded this demo, views was still enabled. Yeah, it was just out of order. Good catch, though. Yeah, had I done it in a different order, it would have shown them not there or uninstalled. So we already went through PM download, which is probably one of my favorites. And PM enable or AN enable, enable your module. Again, you don't have to do that hugely daunting module list. You can find every single module in the views UI and the views stuff or in features. And you can enable one at a time, you can enable one of them. If you enable one that has a dependency, like if you enable views UI and views has not been enabled, it'll enable views for you. So incredibly useful. So let's look at how to download the whole entire Drupal. Can you do that with Drush? Absolutely. Another great thing you can do with Drush is you can update itself. There's actually a self update of Drush. So when you see Drush is updated. Oops. Pretend that it didn't already exist. That's all it took. I just downloaded it. I'm going to go ahead and rename it to something else so that I can use it for whatever demo site I'm going to create right now or dev site or whatever else. Now I update my host file, update... Yeah, update HTTP conf and my host file, set up a database and I'm ready to start. Blank database. Five minutes, I've got a new site going. A little faster than using the UI. Just a little. So, like I said, I was going to show you how to update sites because I know that can get to be really daunting and frustrating and exhausting. And, well, daunting. Especially for the whole Drupal. The instructions say go through and disable every single one of your modules which now means if you have more than one, you have to remember which ones were enabled. And then you go and back up your site. You want to put your site into maintenance mode. Which you probably should still do, but hopefully you're doing all of this. If you're actually a production site, you're doing this all through Git and so you know by now if it's going to break. You should not be doing this straight to a production site. That's my caveat. Give me my disclaimer now. So if I was going to do this manually, I'm downloading the new module, uncompressing it. I have to log in as user one, update the database, et cetera, et cetera. Or we can do it with Drush. This is just a module update that I'm doing here, but like I said, you can do security updates. You can do core updates. You can do theme updates. So I went through and I looked for updates and I needed to update DeVal. I gave it the minus y switch, so I told it go ahead and answer yes to any of my questions. And then it went ahead and it updated the database. So this is a whole, a second step that would have been a whole other step and you would have to go log in as user one, do the update, the database. It did it for me. Now I need to make sure, go ahead and test my site and make sure that it didn't break anything. And then I'll update it through Git to the production. Oops, is that supposed to say insert screencast? No, Drush does not put it in maintenance mode. Like I said, you shouldn't ever do this directly on a production site. So it should be very well tested. And then that way when you're doing it to a production site, literally you're only putting it in maintenance mode for maybe half an hour, literally just to pull your changes and update your database. It does not, but what it does do is it does update everything. So in your home directory or your site's home directory, like if you're logging in as, like even user in root, there's going to be a .drush directory. And in the .drush directory there will be update directories or backup directories and it actually backs up your modules. So you can lease, replace, return. But if it's doing a database update, that makes it a little bit more difficult to roll things back, obviously. So variables. Does anybody, who knows what a variable is on your site? Anybody, nobody? Sort of? Okay. So variables, variables, sorry, are basically bits of information stored permanently in the database. So things like your site name, location of your site, like the site's email address, information on last cron jobs. So a cron job is jobs that are run on a scheduled basis that do things like send out emails or check for updates, things like that. There's certain information about crons that you need to know and if you're writing the code you'll write code against, check if the last cron ran this today and if it didn't run today, make sure this happens at least once a day or something like this. Crons tend to get stuck and I'll give you a little hint of something to look for in crons. If you ever get that, crons already have been running and you keep getting that, we'll show you something you can do to unstick your crons. You can actually change the name of your site through variables. Some things like that. So you can use this, a vset or a vget or a vdelete, variable delete. You can actually delete your variables on the fly, on the command line. We're going to go ahead and do this demo and I'm sorry I didn't get a chance to re-record this one so you've got to look closely. So I did a drush vget inside the site, so I have to be inside the site and it's giving me every single variable that exists on my site. So I just did a vget for cron and it shows the Unix time of the last cron. If you ever see cron underscore semaphore and your site is stuck you could do a vdelete and that's what I'm just showing you what it was cron underscore semaphore and that actually takes so that's telling your system cron is still running. You go ahead and delete that cron semaphore and then go ahead and try to run cron again and it will not show stuck anymore because we've told it you're no longer running. So there I just deleted the last time the cron ran so it doesn't think cron ever ran. Use drush cron and it runs cron successfully and it's showing me again that the last cron is showing up again. So if you're running if you're developer or you as a developer and you have a nice code against um cron if you do a drush cron to test it now you just made sure the cron ran and now you can see if whatever that code you wrote to make the happen a cron ran so this is one way to check it. So how many of you ever run like SQL queries against your database or even play in the database at all? Okay cool make sure I'm talking somebody. So sometimes getting to MySQL can be a pain if you not in there so now you have to remember the name used for your database you have to remember the password so maybe go into your settings file because usually it's hard coded in your settings file copy and paste it out of there try to remember it can kind of get to be a little daunting or time consuming just to get into MySQL so if you get to your command line change directory cd into your site or you can do drush minus l in your url or as we're going to talk about here in a minute you can set up an alias to get you to your site so if you just do drush sql-cli or sql-c it puts you right into your database doesn't ask for the password it passes the username and password of your database gets you right into the database you're right into the right database you can actually run a sql query right from the command line so a super simple query select star from node where node ID is 123 right there you don't even have to get in your database you can do it right there I've actually dropped databases on purpose I promise from the command line created new tables, created new users it can all be done you can probably not do complicated stuff from command line just because I'd rather be in the database and really see it but you can if you want to be that trick daring you can do a drush sql dump which is going to basically dump your whole entire database right from the command line or a sql sync using your keys you can sync your database from your remote site to your local site so at prod and at dev that's syncing from prod to our development server and that's using aliases which like I said we're going to talk about that here in a minute so the drush sql connect I actually don't like that name command name but basically this basically connects to the database and you can if you have a dump that you want to import into your database that first command will actually take the dump and it imports it into your database on the command line so you can make sure you're in your site or you're using your aliases like I said drush sql sync we're pulling our database from our dev server in this case to our production or from our production to our dev server in this case and sql drop that's was dropping your database so if you want to rebuild it some more advanced commands we talked about was drush cron we've already talked about that running those scheduled jobs whenever you want not having to go and find waiting for it drush site install you can use that to install using a specific profile and php val so if you have a piece of code you want to run against your database or against your site you can do drush php val and actually take a piece of code and see if it's going to work against your stuff and actually write it into your code base so drush and aliasing like I said aliases are like shortcuts so instead of writing out this big long extensive command line trying to get to whatever you want to do this is less writing more productivity obviously drush is well that's what it is really more productive with much less typing so the shorter you can go the better so basically you can take that whole long command drush uri which is identifying what my site name is and the root side of my root and then I want to get the status of my site just to drush prog st a few more as characters the less characters the better the faster we're getting to our final product here's a quick alias demo and I'm sorry you can't do that I didn't get a chance to redo this one so this is a site and it's giving me all my aliases files it shows me where the root of my file system is now I'm not inside my I am no longer inside the directory where my site lives if I do a status it's just giving me the drush status it's giving me the status of drush but if I do my alias name prog dot local status now it's giving me the status of my site so this basically means that I don't actually have to be in my directory structure of my site to get the information so I could be anywhere and be like oh I need to update cron or clear my cache and I don't want to have to go see the sites Karen I use aliases I use aliases a lot because I have a lot of sites going on my site and I'm sure if you're here you're probably building more than one site and you probably have a few sites on your local or your devs server or wherever it is you're working so this helps not have to remember where you are on your system so this is an example of what an aliases file would look like a really basic aliases file like I said if you go to drush that has all kinds of examples really good examples for building your own aliases file and again these slides will be available for review so basically this just says that my aliases file this is for my alias prog site that's my URL of my site and that's where my files live this is great for my local site one site for this system and if you're going to come to the drush buff if you want to talk about aliases I can show you some of my aliases files and I can help you build one if we have time okay so if I want to create one for my remote this is basically the same thing again and I've given it this will access the remote server so this is actually not on my local site this actually doesn't exist I just made this for the demo but pretend I have a remote site belonging to my prog demo this is how I would get to it and then you really want to have your keys in place so that your systems can talk now if you're aliasing a group of sites and this is what I usually do I have an aliases file for each one of my sites so in this case it's a prog.aliases.dresh rc and you see that I have a location a lock file which is for my local and a dev which is for my remote site and how I would access that is at prog.lock or at prog.dev so you can actually do something against one each so I can get the status of my local site, status or my dev or I can get status of everything in my aliases file my prog.aliases file which is kind of awesome tool I think and even more advanced we can get into some bash aliasing and I'm not going to go into all this it's a little bit outside the scope but it's there in case you ever want to reference it so let me ask you do you really need to use drush? does anybody think you really don't want to use drush? how many think you really want to use drush? that's what I want to see excellent if you want to learn how to install drush I'm going to do a buff at one o'clock in dressing room congress hall I guess it's down the hall, I haven't actually found it yet and any questions? I was wondering if I could actually there's a microphone right there I want to get all of this great information on the recording so I was actually wondering if I could possibly use drush with the apc cache as well to speed it up I don't know the answer to that okay, thank you yeah that's awesome, thanks I think it controls mostly core cache I know I've done because apc is a separate piece so it's probably not but they're probably command line tools to controlling apc cache because I know when I'm controlling memcache I've always had to do it out of a separate piece so yeah sorry let's use IRC right? yeah, absolutely do you think it's a good idea to have drush installed on a production server? yes you were talking about it are there any risks involved? I don't know of any risks I usually have it installed for things like clearing cache checking on the status of things I don't recommend doing your updates obviously your downloads and updates to production that's just good practice but whenever I don't have drush every time I don't have drush I sit in my office and it was kind of funny doing the stuff that I was uninstalling last week I was like where's drush? we knew we were going to have to uninstall it but we didn't before we were pushing it to production stuff was already on production so now I had to go through and disable apache solar apache solar is not just one module it's dependencies on dependencies and yeah had I had it on the production server it would have been a three minute job trying to find the dependencies and figure out why it wasn't refreshing for clearing cache and things like that for sure and if you don't then you set up an alias file so you can get to it from your local right can you get to the microphone? it's wireless so we'll move it over as soon as he's done with his question I think it's possible to cut and pass more command together you must have one command at a time with drush I'm sorry I missed that on the console of drush I must do one command at a time or I can cut and pass some command can you so you can always do it with a semicolon so you could do drush and dl develop download develop semicolon drush enable develop minus y so yeah you can chain them just use a semicolon between it just like if you're running writing the code but if you do a semicolon between the different commands you can chain them I have done that before how is it possible to use drush to export configuration like variab and move some configuration from side to another so then you want to do a SQL sync so you could dump your database and upload the database you could sync the database from your remote to your development server because configurations are all in the database all entire database or even some variables or something I'm sorry I missed that last one all the sql all the database or even some variables some things I don't know yeah so all the variables are in the database as well um no because it's part of the database you have to do a partial database sync but you could do a vget and find out what that variable was and then you could go back to your other database and do a vset and set it to the same name so yeah you could just do it one at a time can you move past the mic over to the end of the table over there yeah thanks sorry progress too many stairs no worries quick question can you run drush with user one disabled because on production servers I usually disable user id one as a security practice so to make it less obvious security by obscurity huh there's a layer I can go into that but it is a layer so just a quick question can you run drush without user one I don't think you can because it runs as user one alright that makes sense yeah by default you can't I don't know how you there's a lot of things you couldn't do with user one disabled you cannot specify using a different user I think you said that you can if you can do the ULI to user login but when you're actually running drush I think you're running it as user one alright okay yeah I'm gonna try it out I mean you could probably still get into like the SQL commands because that's not using user one but things like doing update and things like that you have to be user one yeah that makes sense alright thanks anybody else can you please elaborate a bit more on the process of database syncing between the getting data from the production environment back to the development or stage environment and then syncing back to let's say a process of deployment using the drush as a tool so you need to set up your aliases file to see I can show you one of my aliases files actually where's my toolbar okay so what you do you want to have your aliases file to set up so they talk to each other and like basically a SQL sync actually pulls from the one database and it sticks it in the new database so it literally overwrites your database so you want to sync your files and sync your database um pull this over here for a second I can't get to the files when you ding it oh and this so the file open in front of me on this one okay so bear with me one second here I'll actually show you a real yeah I shouldn't hold on one second I'm going to pull out some database names here so this would be my aliases file sorry I'm too far this is a real aliases file yeah so that's my low it's really hard to do this sorry this is my cursor I can show you after probably makes more sense so here so here's my sync we don't well yeah I guess for when we're going from dev so this is for instance my aliases my bash aliases lost my cursor again hold on one second lose my cursor this is the bash aliases from syncing one site to the other site so actually are syncing it a SQL sync don't pull cache for my dev server for my production server to my dev server or dev to my local actually in this case hi and it's depending on the aliases if you run it like this it will make a huge copy of the the live one down to the development but it will overwrite the logs on the development server and it will also overwrite all the settings it won't just copy how do you just copy the content without the logs and without overwriting the settings we've been building in the development environment you want to just set up just copy the files the our sync copies the files but I want to have the what happens in live services people do change content node content so I just want to pull the node content to the development environment which I've been setting up with new modules new settings, new god knows what else yeah you can tell SQL sync to skimp certain tables like system tables and things like that dash dash data only let's see so we can do help SQL dump we can do data only dumps data without any of the schema if I can only resize this hold on a second I can't get my cursor I'm losing my cursor hold on one second let's see if we can there we go so let's see if it does dash help SQL no it doesn't look like it so yeah you can use the tables key which will actually give you certain certain things not to skip like there's certain caches like sometimes you don't want to you do not want to bring over the cache because tables because they're so huge right so you can tell it it's a little bit more stuff you have to put into your config files but you can tell it which you can actually create a database on the fly you can tell which tables not to skip and things like that so you can do that if you have any questions so please do take time to fill out the evaluation I'm really interested in what you think how I did up here because well because I did this presentation but I also would like to do it again and I want to make sure that if there's places I need to improve that I do so because I think it's kind of an important discussion I like I said I'm going to have the bop from one to two and you're welcome to join me and go over how to brush and that's our our have a fantastic Drupalcon and I will see you around