编写数据库数据和文件复制的传输脚本
本文关键字:复制 传输 脚本 文件 数据库 数据 | 更新日期: 2023-09-27 18:06:32
我知道这对于SO
的标准来说是一个有点笼统的问题,但是我已经读了一些关于类似主题的文章,每个人都说"这是一个草稿工作",但是我越是想办法做到这一点,我就越困惑。我需要找到一些解决方案,最后它可能是任何解决方案,但如果它确实是标准和简单的东西,我想至少得到我应该遵循的基本步骤来做到这一点,甚至更好-一个教程或类似的东西,涵盖主题类似于我的。
我有-一个继承数据库与3个表,其中有一个列Picture
。在旧的数据库中,这一列是一个String
字段,它保存了到文件源的整个路径,例如C:'Images'SomeFolder'SomeImage.jpeg
。在新的数据库中,同样的列Picture
也存在,但它只保存图片的名称。路径在Config
表中,但我认为这并不重要,因为路径将在传输脚本中硬编码(或者我认为这是要做的方式)。
所以在新旧数据库之间发生了这个传输脚本,我需要以下逻辑步骤:
- 取
Picture
列的值 - 检查是否有现有的文件(像
File.Exist
我想象) - 更改图像文件的名称(有新的命名约定,因此所有名称必须相应地更改)
- 将图像文件复制到目标文件夹(路径在脚本中硬编码或从表
Config
中获取) - 复制新的图像文件名到新的数据库列
Picture
- 为表中的所有行和所有具有
Picture
列的表(再次硬编码,因为只有3个表)执行此操作 - 对于未成功复制的文件和详细信息(表,行,文件名-我不确定在这里显示什么最好)的某种报告
我读了很多关于BulkCopy
,但到目前为止,我认为这不是我应该寻找解决这个问题。我有一些棘手的部分-这是没有必要是与从旧数据库采取的路径相关联的现有图像,所以如果是这种情况下,我必须继续,但也记录该信息。此外,即使不可能发生,在执行期间,更确切地说,在将图像文件复制到新位置期间,可能会导致错误,我想我应该只记录错误,但不太确定,因为有一个实际的图像。
然而,你建议用什么方法使它工作?用什么,有没有专门为这种情况设计的东西,我应该知道。我现在唯一知道的是我要用C#
写。它很可能是Command Line
应用程序,可能需要作为.exe
运行,我不确定这是否会造成任何困难。
p。S
我不确定这对当前情况是否重要,但新应用程序是使用ADO.NET Entity Framework
代码优先方法构建的。开发服务器是MS SQL Server 2012
,但工作服务器将与MS SQL Server 2008
。我不确定这是否也会成为一个问题,因为现在我们没有任何兼容性问题,除了不同的排序,但这是修复的。
我宁愿去潜水。
设计一个中间表,被称为PictureRepository
表,这个表将有你需要从数据源读取数据的所有列,所有列都需要保存在目标表和额外的列,如状态,错误描述和…
-
Reading Data
(通过读取源表来填充PictureRepository)。 -
Validating Data
(验证图片存在和…通过阅读图片仓库。更新统计信息和错误描述列(如果需要) -
Operation
(创建新图像文件名并更新PictureRepository中的列) -
Saving data
(从PictureRepository读取无错误数据行并将其保存到目标表)
报告将通过从picturererepository读取错误数据来完成。
根据问题的复杂程度和经验,你可以用c#或SQL来完成这些阶段(读取数据和保存数据可以通过存储过程来完成)。
希望对大家有所帮助