You're welcome. The original empty() test was written with an eye towards the obvious returns from the getVersion() code. Your ```!== '0'``` test was written with an eye towards the problem you were seeing at the time. Since it hadn't been very long since I put it there to begin with, it was easier for me to see that the answer was somewhere in the intersection of the two.

The one thing that really threw alarm bells for me, though, was that $currentVersion can be a lot of things other than '0', and, in the majority of those cases (e.g. '1', '2', etc.), I wouldn't want to attempt to insert the data.

One of the problems I ran into throughout the Migrations library which may have contributed to this problem is that you're always running into versions:
- the version of the ```schema_version``` table
- the existing version of whatever is being migrated
- the version to which you are migrating

In many ways, even after rewriting a great deal of the library, there are still a lot of issues with consistency in that area.