簡體   English   中英

將Rails應用“連接”到已經存在的MySQL數據庫?

[英]'Connect' a rails app to an already existing MySQL DB?

因此,在我的公司中,我們正在緩慢地轉向Rails而不是PHP(確切地說是Code Igniter)。 因此,我們實際的PHP應用程序正在使用Mysql數據庫,並且我想將新的Rails應用程序連接到該數據庫,但是與此同時,我們的PHP仍在運行,因此無法更改該數據庫。

我真的不知道我應該從哪里開始使用所有的rails功能(或者至少是盡可能多的)。

將Rails應用程序連接到現有數據庫應該不會有任何危害。 您將需要注意任何與Rails約定不符的事情(例如,表名是多個模型),並更改數據庫(和您的php應用程序)或解決Rails中的問題。

但是第一步只是連接到數據庫並為現有表建立模型,然后查看哪些有效,哪些無效。

之后,請在此處發布任何具體問題。

作為建議,請備份數據庫,然后針對該數據庫開始編程,以構建應用程序,並確保一切都能安全運行。

好吧,首先,您應該在config / database.yml中設置連接,然后開始逐表生成支架(模型,視圖和控制器)(檢查Rails generate命令)。 我不太確定您是否已經生成了該應用程序。 無論如何,生成器還會生成一個遷移腳本,您顯然不想運行該遷移腳本,因為該數據庫已經存在。

希望這個對你有幫助。

無論如何,一些資源:

http://guides.rubyonrails.org/
http://railsapps.github.io/

對於這種情況,需要考慮Rails應用程序的兩個方面:

1:數據庫連接

只需將此數據庫的憑據放入database.yml。

默認情況下,“用戶”之類的模型將嘗試在名為“用戶”的表中查找記錄和屬性定義。 ActiveRecord將假定每個表上都有一個自動遞增的整數主鍵。 保存記錄時,它將嘗試寫入稱為created_atupdated_at列。 在建立和使用連接時,請注意以下幾點。

2:數據庫遷移

Rails使用遷移文件來管理對數據庫結構的一系列更改。 在正常情況下,構建Rails應用程序的人將從一個空的數據庫開始。

對於現有數據庫,我建議進行如下遷移:

class BuildLegacyDbStructure < ActiveRecord::Migration  
  def up
    Mysql2.connection.execute_some_sql_file(  # made-up function
      Rails.root.join('path', 'to', 'file')
    )  
  end

  def down
    # reverse those changes; bring DB down to blank state
  end
end  

另一個選擇是完全禁用Rails / ActiveRecord的基於遷移的數據庫管理。 例如,當您生成新模型時,Rails將生成一個遷移。 所以,如果你在你的PHP應用程序有一個現有用戶表,並且希望做一個滑軌模型中使用此表,你運行像rails generate model User --no-migration

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM