Category: Blog

  • Flyway Tips: Multiple Projects

    One of the nice things about Flyway Desktop is that it helps you manage your database code as a project and see what changes are being built. However, many of our customers end up working with multiple databases, so there is a need for multiple projects.

    This post looks at the new addition to the GUI: the ability to work with multiple projects at one time in the same GUI.

    I’ve been working with Flyway and Flyway Desktop for work more and more as we transition from older SSMS plugins to the standalone tool. This series looks at some tips I’ve gotten along the way.

    Opening a Project

    Flyway Desktop (FWD) used to only allow one project to be open at a time. This proved cumbersome. We debated allowing multiple instances of FWD, but keeping track of them can be cumbersome. We decided to allow multiple projects inside the same FWD instance.

    You can see this below, where I have three projects open at once. I have Northwind, a Synapse project, and an Autopilot project. These are listed across the top as tabs, and clicking each brings that project to the front. The current project is showing the Autopilot one.

    2026-02_0167

    If I click the Northwind project, notice the little red underline. This indicates the project being shown.

    2026-02_0172

    To add a new project, I click the plus (+) at the top to the right of my projects.

    2026-02_0173

    This gives me a list of my projects, the same way I’d see them when I started Flyway Desktop. Notice the 3 I have open are listed first, as they were most recently touched.

    2026-02_0174

    If I click any of these projects, like my SimpleTalk_Timestamp project, it opens up. As with any project, the comparison on the Schema Model tab starts automatically.

    2026-02_0175

    Now I can switch projects quickly with a click, and my existing projects don’t close.

    Summary

    This is a small change, but one that has a big impact. The teams are constantly working on small and large changes like this. The ability to manage multiple projects is one that’s been requested and we were working on it, testing designs with customers and finding the best balance for most of them.

    We settled on multiple projects in one GUI, which I like and seems to be working well.

    If you work with Flyway, update your desktop and give it a try. We would love to hear your feedback.

    Flyway is an incredible way of deploying changes from one database to another, and now includes both migration-based and state-based deployments. You get the flexibility you need to control database changes in your environment. If you’ve never used it, give it a try today. It works for SQL Server, Oracle, PostgreSQL and nearly 50 other platforms.

    Video Walkthrough

    Watch me do this in video:

  • A Wellbeing Day at Redgate

    It’s a day off for Redgate today. This is our annual wellbeing day, where everyone gets the day off.

    Well, not everyone, but anyone that has to work today gets to take another day off. I missed last year’s day because of travel and commitments, but I managed to take a day off later in the year.

    For me, I was coaching in Orlando this weekend at the 2026 Sunshine Classic Girls Junior National Qualifier with my wife. Actually, I was the assistant to the assistant coach, so I was really there supporting my wife and cheerleading for the young ladies. We stayed an extra day for a cheaper flight, and to unwind a bit. The timing worked out, so I don’t use a vacation day today, though I did last Friday, which was the first day of the tournament.

    This is a relatively new perk, just a few years old, but I’m proud that Redgate tries to support and care for employees in different ways. The company has always recognized that balance in life is important and we need time away from work. We work hard when we’re working, so we need breaks.

    It’s a travel day, but these three day tournaments are long and tiring. It’s nice to have a day to unwind before getting back to it tomorrow.

  • A New Word: on tenderhooks

    on tenderhooks – adj. feeling the primal satisfaction of being needed by someone, which makes you feel that much more rooted to the world, even if the roots belong to someone else.

    I feel this all the time with my wife. She needs me, maybe as much as I need her. She tells me, and I both appreciate it and feel lots of pressure to be the person she needs.

    It’s an interesting conundrum to feel good that someone wants you around, but also feel some tension about it. It does help me stay rooted, and reminds me that not only have a made a difference in the world to someone, but I continue to do so.

    From the Dictionary of Obscure Sorrows

  • Identity Columns Can’t Be Updated: #SQLNewBlogger

    I’m not sure I knew identity column values could not be updated. I ran into this while trying to solve a problem recently and had to check the error I was getting. This post shows what happened.

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

    Setup

    A quick setup for you. I need to go to the store soon, so hence, here is my sample table (created and filled by SQL Prompt).

    CREATE TABLE Vodka
    ( id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
      brandname VARCHAR(100) NOT NULL
      , rating TINYINT
    );

    INSERT INTO dbo.Vodka
    (
        brandname,
        rating
    )
    VALUES
    ('Grey Goose', 9),
    ('Belvedere', 8),
    ('Absolut', 7),
    ('Smirnoff', 6),
    ('Stolichnaya', 8),
    ('Ketel One', 9),
    ('Tito''s', 8),
    ('Ciroc', 7),
    ('Skyy', 6),
    ('Russian Standard', 7););

    I then tried this:

    2026-02_0157

    OK, what about IDENTITY_INSERT. I know this isn’t an insert, but I thought this “unlocked” the identity column. It doesn’t work.

    2026-02_0158

    I searched on MS Learn and found the UPDATE statement documentation. In here, you can see what it says below. I can’t do this.

    2026-02_0159

    The error reference provides no info, but apparently this isn’t a thing.

    What’s amazing to me is that in 30 years either I’ve never done this, or I’ve rarely encountered it and forgotten. Either is possible.

    In any case, if I want to change this, I likely need to “re-insert” the row with a new value (either take the seed or use identity_insert) and then delete the old one.

    Crazy.

    SQL New Blogger

    I was testing something else and ran across this. I decided it’s a great showcase of me learning something and giving a workaround. I’ll show the workaround in another post, which is actually about the thing I was doing.

    Of course, that post needs to change.

    This took about 10 minutes to write.