Docker安装PostgreSQL与应用

6 篇文章 0 订阅

准备

您需要一台Linux服务器并安装Docker,或使用windows的Docker Desktop

安装数据库

sudo apt update
sudo apt install postgresql postgresql-contri

验证安装

sudo -u postgres psql -c "SELECT version();"

创建数据库

sudo su - postgres -c "createdb [数据库名]"

添加 postgres 密码

sudo su - postgres -c "ALTER USER postgres WITH PASSWORD '[密码]';"

修改配置

cd /etc/postgresql/12/main
sudo nano postgresql.conf
# - Connection Settings - 节
listen_addresses = '*' 

开放所有访问

sudo nano pg_hba.conf
host    all  all   0.0.0.0/0  md5

重启

sudo service postgresql restart

验证

ss -nlt | grep 5432

安装客户端

pgAdmin 4

数据库使用

创建类库Postgre.Data
创建控制台 Postgre.Helloworld

Postgre.Data 使用EntityFramwork Core 6.x 面向codefirst

使用程序包管理器,Install

Install-package Microsoft.EntityFrameworkCore.Tools

添加PostgreSQL的引用

nuget 添加 Npgsql.EntityFrameworkCore.PostgreSQL

添加myContext

    public class MyContext : DbContext
    {
        public MyContext() : base()
        {
        }

        public MyContext(DbContextOptions<MyContext> options) : base(options)
        {
        }

        public DbSet<ProjectScanResult>? ProjectScanResults { get; set; }

        public DbSet<ProjectScanHistory>? ProjectScanHistorys { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //if (!optionsBuilder.IsConfigured)
            //{
            //    var connectionString = @"User ID =postgres;Password=xxxx;Server=xxx.xxx.xxx.xxx;Port=5432;Database=xxxx;Integrated Security=true;Pooling=true;";
            //    optionsBuilder.UseNpgsql(connectionString);
            //}
        }
    }

Postgre.Helloworld 代码配置(DotNet 6 Program.cs)

//Database configuration
builder.Services.AddEntityFrameworkNpgsql().AddDbContext<MyContext>(optionsAction: opt =>
    {
       opt.UseNpgsql(builder.Configuration.GetConnectionString(name: "Conection"));
    });
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
//Database initialization
using (var serviceScope = app.Services.GetService<IServiceScopeFactory>()?.CreateScope())
{
    var context = serviceScope?.ServiceProvider.GetRequiredService<MyContext>();
    context?.Database.Migrate();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值