Can I be cheeky and fork the thread ever-so-slightly?
Any DM's here who have run city-based campaigns, did your players ever yearn for more open country/exploration/travel?
I don't know how much they did, but I do. I try to not get too stuck in one style for too long.
What did you do to keep the campaign fresh and give the players that sense of discovery that seems so vital to a happy table?
There are a couple of different approaches here that can keep things fresh without departing from the model of a city based adventure.
The first thing to understand is that the feeling of being able to explore is based on the sense that there is real space to explore. The scale of this space in terms of its imagined dimensions isn't really that important. You can create a sense of vast feelings of space on an encounter map measured in 10's of yards just as much or maybe more than one measured on 36 mile hexes. What is important is the feeling that between points A and B there is actually stuff and that any sort of travel between A and B can't really be hand waved because of all the stuff between them.
An example of how much this is true can be taken from the Star Wars universe. The Star Wars universe is filled with (supposedly) billions of inhabited worlds. But typically we know those worlds only from a single building or other small location. Each planet is in fact no bigger than a small village, and the rest is essentially matte paintings - background color. The whole star wars universe therefore at best is no larger than any average fantasy world, it's just spread out over more imagined space. Meanwhile, something like Skyrim is spread out only over a few imagined miles of land, but because there is actual stuff in all those imagined miles it feels immense. If you want to give a campaign a feeling of space and exploration and travel and open country, you have to have stuff in it. Otherwise you might as well have teleporters everywhere (which you could do, and might be interesting).
One model of giving players an outlet for exploration that is very traditional is the Megadungeon. You have the city right on top or next door to 1000+ encounter multi-level seemingly endless dungeon environment. This is the classic city based adventure setting: Greyhawk, Waterdeep, and Ptolus all work this way. If the players want to explore, they have an almost endless variety of things to discover. One reason this model is so attractive to DMs, especially novice DMs, is it has exceptionally good effort to play time metrics. Twenty hours mapping and detailing a megadungeon, especially once you know some of the tricks of it, will yield an enormous amount of play time. It's probably not the thing an experienced player is going to want a steady diet of, but it can be enormously entertaining as well especially if you've never experienced it or haven't played it in a while.
Another model that works is the Haven model, where the city is surrounded by dangerous environs and wild country. Periodically the players will need to or at least can make a journey of say 1-3 days in various directions to different dungeons or smaller towns to retrieve foozles or resolve subquests or rescue the innocent or whatever. This gives you opportunity to add some wilderness travel without invalidating the main thrust of your prep effort in the city. It's also nice because it lets you incorporate different published modules into your play by make them episodes in the parties adventures, and it lets you use some ideas that would be otherwise difficult in most city concepts - a dragon's lair, a castle inhabited by bandits, a band of giants, etc. Also, by 'getting out of town' it avoids one of the biggest problems you can run into in a city campaign, which is, "Why aren't the civic authorities doing more to help me save the city?" Getting away from the city explains why all those powerful NPC's aren't solving the problems whenever you bring them to their attention.
Ultimately, a sense of discovery comes from finding things that feel as if they were always there. It is something that can't really be improvised. You have to prep to bring it to your table. I should note that 'sense of discovery' is one thing that random encounters just can't do, and in particular it should be noted that to the extent that a random table can support exploration and a sense of discovery it depends on you doing a lot of myth development to detail the environment so that these random encounters feel meaningful because you the DM can connect them to the framework you've put in place.