同樣的情況也發生在數據庫上。 一個小公司可能覺得將信息存儲在一個 PC 數據庫中就足夠了,但在該遷移信息時將發生什么? 我們可能很苦惱要丟掉有價值的信息,但的確經常扔掉這些信息。 不過,當時可能看起來不是非常主要并被丟棄的信息,有時可能會需要。
我最近就碰到這樣一個問題。 我工作的一個社區機構有一個基于 PC 的應用程序,它帶有一個相當大的 Microsoft access 格式的會員數據庫。 已經編寫了一個來自第三方的用戶程序來與該數據庫一起工作,但隨后許可過期了,再沒有方法來獲取該軟件的更新。 碰巧,忽然又非常需要這些信息。 我們備份了舊的數據庫,并將之存儲在一個 linux 系統上。 在新的開放源代碼世界中,為我們提供了許多強大的數據庫(如 Linux 上的 Oracle 數據庫)。 一種選擇是購買一份 Microsoft Access 并創建一個應用程序,但這將把我們限制在同一個特定模型中,而這本來就已經使我們陷于困境。 此外,公司希望能夠從一個安全的服務器遠程訪問這些數據。
再次依靠 Microsoft 不是我們希望的選擇。 Linux 將作為這個新的數據庫服務器的基礎,并且它將運行一個行業標準的 SQL 數據庫。 因此,假如我們著手取出限制在舊的 MDB 文件中的數據 — 而不依靠于安裝帶新的 Access 許可的 Windows 服務器(這樣將再次受限于一個單體系結構解決方案),那將如何?
到處尋找解決困境的解決方案,我來到了 Brian Burns 的網站,并知道了他的 mdBTools 程序包,該程序包是命令行工具的一個集合還有一個 GUI,它的唯一的目的是提供從 Access 數據庫中取出信息方法。
+------------------------------+--------------------+----------+ Column Name Type Size +------------------------------+--------------------+----------+ ID Long Integer 4 Address1 Text 255 Address2 Text 255 Address3 Text 255 Phone Text 50 Fax Text 50 DefaultInd Boolean 0 +------------------------------+--------------------+----------+
DROP TABLE Customers; CREATE TABLE Customers ( CustomerID Text (10), CompanyName Text (80), ContactName Text (60), ContactTitle Text (60), Address Text (120), City Text (30), Region Text (30), PostalCode Text (20), Country Text (30), Phone Text (48), Fax Text (48) );