I've been using SQL Source control for the past 6 months or so and it has been working well. This morning I unlinked my database from source control, then did a backup/restore of a production database to my local environment and re-linked the database to source control. Now when I try to commit changes I receive the following error message below, which refers to a CRL assembly that exists in the database. I compile and deploy this assembly from Visual Studio 2010 and have not encountered this before. Is this a known issue?

RedGate.SQLSourceControl.Engine.SqlCompareException: Failed to locate the CLR assembly Northland.TariffTrak.CLR for the [dbo].[OptimizeRates] stored procedure. ---> RedGate.SQLCompare.Engine.SqlCompareException: Failed to locate the CLR assembly Northland.TariffTrak.CLR for the [dbo].[OptimizeRates] stored procedure.
at #Eyg.#Gyg.#eGh()
at #Eyg.#Gyg.#vl()
at RedGate.SQLCompare.Engine.Database.Register(String path, ScriptDatabaseInformation dbinfo, Options options)
at #G3c.#L3c.#t.#u3.#i4c()
at #oEc.#7Jf.#hKf(ICancellableOperationStatus status, ICancellable database, Action action)
at #oEc.#7Jf.#t.#B3.#sKf()
at #oEc.#7Jf.#gKf(Action action)
--- End of inner exception stack trace ---

Server stack trace:
at #oEc.#7Jf.#gKf(Action action)
at #oEc.#7Jf.#jKf(ICancellableOperationStatus status, ICancellable database, Action action)
at #G3c.#L3c.#e4c(String path, #M3c args)
at #G3c.#K3c.#83c(String path, TArg argument)
at #G3c.#L3c.#f6c(String path, ScriptDatabaseInformation folderOptions, Options options, ICancellableOperationStatus status)
at #oEc.#i7c.#f6c(String folderPath, ICancellableOperationStatus status)
at #oEc.#i7c.#f6c(IPersistentWorkspace workspace, ICancellableOperationStatus status)
at #oEc.#i7c.#t.#9Jf.#t.#2Db.#TSi()
at RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperation.#t.#D3.#Y1h()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
at RedGate.SQLSourceControl.Engine.Action.EndInvoke(IAsyncResult result)
at RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperation.#zIc(ICancellableOperationStatus status, Pair`2[] labelledActions)
at #oEc.#i7c.#t.#9Jf.#SSi()
at #oEc.#7Jf.#t.#9Jf.#uKf()
at #oEc.#7Jf.#hKf(ICancellableOperationStatus status, ICancellable database, Action action)
at #oEc.#7Jf.#lKf[T](ICancellableOperationStatus status, ICancellable database, Func`1 function)
at #oEc.#i7c.#QSi[TDiffType](ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
at #oEc.#i7c.#t.#z2.#hOi()
at #oEc.#i7c.#bOi[TDiffType](ICancellableOperationStatus status, Func`1 innerBuild)
at #oEc.#i7c.#q1f(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
at #oEc.#4Ec.#z7c(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
at #oEc.#4Ec.#7Jc(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
at #oEc.#4Ec.#t.#u3.#ofA(ICancellableOperationStatus status)
at #eEc.#iEc.#t.#D3.#i5f()
at RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperationBase.InvokeWithTracker(Action action)
at #eEc.#iEc.Invoke()
at #JLc.#Qlg.Invoke()
at #JLc.#Qlg.Invoke()
at #JLc.#PLc.#t.#Jfb.#EJf()
at RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.Do(Action toDo, Predicate`1 shouldReportPredicate, Boolean rethrow)
at RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.DoWithObviousExceptionsRethrowAll(Action action)
at RedGate.SQLSourceControl.CommonUI.Forms.ErrorDialog.DoWithObviousExceptionsRethrowAll(Action action)
at #JLc.#PLc.#CTc(ICancellableOperation`1 operation, Object token)
brianb
0

Comments

8 comments

  • chriskelly
    Thank you for your post.

    I believe that you are suffering from a bug which has already been reported by a number of users, reference SOC-1350. I have updated this to reflect your issue. Unfortunately, I do not currently have any information on a solution or a fix, but the team are currently working on v2.0 so I am hopeful that a solution will be found for this release.
    chriskelly
    0
  • laazyj
    I'm having the same problem, introduced in the same way.
    Database was working fine. Restored from a backup and now it fails with the "Failed to locate the CLR assembly..." exception even though the CLR assembly is properly installed, enabled and usable within a query.
    laazyj
    0
  • David Atkinson
    Hi,

    I've checked the SC-1350 issue in our bug tracking system and it looks like it might have been fixed. Have you checked the recently circulated early access build?

    Kind regards,

    David Atkinson
    Product Manager
    Red Gate Software
    David Atkinson
    0
  • laazyj
    Thanks for the reply David. I can't use the current EAP builds, they don't play nicely with our SQL Data Compare scripts for managing static data.
    We're patiently waiting for this feature request so we can use SQL Source Control for managing data as well.

    Do you know if this will make it into the next official release?
    laazyj
    0
  • David Atkinson
    The SQL Source Control release candidate due out very soon will have the SC-1350 fix.

    Unfortunately, the ability to exclude columns in SQL Source Control will not be available in this version. If this is something that won't work for you, you will need to carry on using SQL Data Compare to push your static data as you are currently doing.

    Kind regards,

    David Atkinson
    Red Gate Software
    David Atkinson
    0
  • laazyj
    Hi David,

    The problem we have is that the current EAP builds of SQL Source Control aren't usable because of the limited data support.

    We use the tools in the following way:
    1. A single SVN repository
    2. SQL Source Control for developers to check-in changes to this source tree.
    3. Custom SQL Compare and SQL Data Compare scripts to deploy changes from the repository to our test, staging, production environments

    Testing we've done with the pre-release SQL Source Control have failed because it always tries to overwrite the data in the repository.
    We won't be able to use the new release unless either we can completely disable data support in SQL Source Control, or the data support is enhanced to allow us to specify which columns to source-control.

    Is it possible to disable source controlling of data in the release candidate, even when data exists in the SVN repository?

    Jason
    laazyj
    0
  • David Atkinson
    Ah...

    This may indeed cause problems, and it's because SQL Source Control isn't as advanced as SQL Data Compare right now.

    We'll be implementing a feature to ignore schema objects soon. Following this, if there's enough demand, we'll consider doing the same for data columns.

    David
    David Atkinson
    0
  • laazyj
    Thanks David. I hope you can implement it soon, as we won't be able to update our SQL Source Control installations until it is available.
    laazyj
    0

Add comment

Please sign in to leave a comment.