This issue has already been reported. Here is the full error message I received. Note that the tables referenced in the error message are tables used by my custom modules - none of them have any dependencies (i.e. constraints) that tie them to core DNN tables.
It appears that the 06.01.05.SqlDataProvider attempts to make changes to non-core DNN tables. I received this error when upgrading from 6.1.4 to 6.1.5:
System.Data.SqlClient.SqlException: Foreign key 'FK_VRS_CostCenter_Roles_Roles' references invalid column 'RoleID' in referencing table 'VRS_CostCenter_Roles'.
Could not create constraint. See previous errors.
Table Name: UserRoles Constraint:FK_UserRoles_Roles
Table Name: VRS_CostCenter_Roles Constraint:FK_VRS_CostCenter_Roles_Roles
ALTER TABLE UserRoles ADD CONSTRAINT FK_UserRoles_Roles FOREIGN KEY (RoleID) REFERENCES dbo.Roles (RoleID) ON UPDATE NO ACTION ON DELETE CASCADE
ALTER TABLE VRS_CostCenter_Roles ADD CONSTRAINT FK_VRS_CostCenter_Roles_Roles FOREIGN KEY (RoleID) REFERENCES dbo.Roles (RoleID) ON UPDATE NO ACTION ON DELETE NO ACTION
at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL)
at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions)
The tables referenced in the error message are non-core DNN tables...