我有一系列複雜的查詢,我正在使用Ecto在Elixir/Phoenix中運行。這些目標是使這些查詢適用於創建新條目和更新以前的行。爲此,我設想使用一個函數參數來定義我們是否正在更新表格。例如,現在我有以下功能: # Retrieves the stats on the user chargebacks
defp get_chargebacks(%{user_id: user_id} = map)
我想重載一個函數,它將一個映射作爲參數用於幾種不同的情況。調用該函數時,將根據地圖中的鍵執行不同的功能。 例如,在此find_user!()功能,我可以由id,email,或mobile號碼字段它們在數據庫中的所有索引找到該用戶。 def find_user!(%{"id" => user_id}) do
Repo.get(User, user_id)
end
de
我有兩個表,例如,使用transaction_id作爲外鍵退款並退款。 defmodule Payments.Payment do
use Payments.Web, :model
schema "payment" do
field :payment_id, :string
field :captured_amount, :decimal
如何在Ecto中編寫遷移以刪除列的默認值?比方說,我有一個表稱爲:users一個叫:timezone列以前默認爲「ETC/UTC」 ...... 這裏是我的遷移開始... def up do
alter table(:users) do
modify :timezone, :string, default: fragment("NULL"), null: true
當生成型「日期時間」的專欄中,我得到一個警告 the :datetime type in migrations is deprecated,
please use :utc_datetime or :naive_datetime instead
然而,當我與該類型替換「 utc_datetime」,我得到一個異常: ** (Mix) Unknown type `utc_datetim