iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
SideProject30

我想自己刻部落格系列 第 30

將資料庫更換為 Sqlite

  • 分享至 

  • xImage
  •  

前面用 ASP.NET Core 開發時,直接偷懶用熟悉的 SqlServer 。但是真的要部屬到正式環境,我的貧窮思維告訴我只要使用一個月 5 美金的便宜主機就可以了。一個小小的部落格走 .NET 全家桶上 Azure ,可要花好幾倍的錢(雖然 150 的六倍也才不到一千)。

所以要把使用的資料庫從 SqlServer 換成免費的檔案式資料庫 Sqlite。反正 Digitalocean 5美金的主機已經是 SSD 了。放心地用吧。

將資料庫更換為 Sqlite

套件安裝

安裝 NuGet 套件

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Sqlite

https://ithelp.ithome.com.tw/upload/images/20231015/20120420v3BTtmaXHl.png

資料庫連線字串設定

調整資料庫連線字串,在 appsettings.json 新增 SqliteConnectionDatabase\MyBlog.db, 我們先在專案目錄下新增Database 資料夾,而 MyBlog.db Sqlite 資料庫待會由 EF Tools 幫我們建立。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ConnectionStrings": {
    "MyBlogConnection": "..."
    "SqliteConnection": "DataSource=Database\\MyBlog.db"
  },
  "AllowedHosts": "*"
}

在 Program.cs 的註冊的 DbContext ,設定需要調整為 UseSqlite,連線字串也變更為 SqliteConnection

builder.Services.AddDbContext<MyBlogContext>(options =>
    options.UseSqlite(builder.Configuration.GetConnectionString("SqliteConnection"))
);

使用 dotnet ef 工具

因為我們之前都是用 EF Core 反向工程,用 SqlServer 的資料庫反向建立 MyBlogContext
https://ithelp.ithome.com.tw/upload/images/20231015/20120420Bmjqn3DKFx.png

現在我們可以用建好的 MyBlogContext 使用 Code First 的方式,幫我們建立 MyBlog.db Sqlite 資料庫

在專案目錄下,使用終端機(命令提示字元 Console) 來執行 dotnet ef 工具
(右鍵或是 swift + 右鍵)
https://ithelp.ithome.com.tw/upload/images/20231015/20120420ALS13D6EK1.png

如果沒有事先安裝 dotnet ef 工具,會出現以下錯誤訊息
https://ithelp.ithome.com.tw/upload/images/20231015/20120420Tj9QjFOXPo.png

安裝 dotnet ef 工具的指令

dotnet tool install --global dotnet-ef

https://ithelp.ithome.com.tw/upload/images/20231015/20120420pIBvE3RCZe.png

使用以下指令建置資料庫移轉的相關檔案

dotnet ef migrations add InitialCreate

https://ithelp.ithome.com.tw/upload/images/20231015/20120420GQvwOtOxAB.png

使用以下指令執行資料庫更新因為目前

dotnet ef database update

因為目前 Database 資料夾下面沒有 MyBlog.db 資料庫,上述指令會順便幫我們建立 Sqlite 資料庫
https://ithelp.ithome.com.tw/upload/images/20231015/20120420fQv8659tX1.png

如果有安裝 Sqlite 檢視工具的話(例如:DB Browser for SQLite),可以打開 MyBlog.db 看到資料表結構已經建置
https://ithelp.ithome.com.tw/upload/images/20231015/20120420Uh8HzCagiZ.png

啟動的話就可以看到沒有資料的空網站 XDD
https://ithelp.ithome.com.tw/upload/images/20231015/20120420JSkDYE9Kli.png

使用之前建立的 init/CreateUser 建立使用者帳號 和 init/Import 匯入資料,就可以開始使用了!

可以在 GitHub 看程式碼。


上一篇
側邊欄實作,文章排序、路由調整
下一篇
佔樓,等後續更新
系列文
我想自己刻部落格31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言