diff --git a/CHANGELOG.md b/CHANGELOG.md
index 31b1c43..73219de 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,18 +8,24 @@ Which is based on [Keep A Changelog](http://keepachangelog.com/)
 ### Changed
 
 - break: new system for user and privileges
+- break: default postgresql version is 15
 
 ### Added
 
 - add database owner
 - add variable postrgresql_primary
 - add user attributes
+- test: add support debian 12
 
 ### Fixed
 
 - fix replication database in pg_hba
 - fix pg_hba when multiple users or multiple databases
 
+### Removed
+
+- test: remove support debian 10
+
 ## v1.0.0 - 2021-09-10
 
 - first version
diff --git a/README.md b/README.md
index 0872d0f..f29859c 100644
--- a/README.md
+++ b/README.md
@@ -7,16 +7,16 @@ Install and configure Postgresql
 
 ## Requirements
 
-* Ansible >= 2.9
+* Ansible >= 2.10
 * Debian
-  * Buster
   * Bullseye
+  * Bookworm
 
 ## Role variables
 
 | Name                               | Type  | Required |Default | Comment                                             |
 |------------------------------------|-------|----------|--------|-----------------------------------------------------|
-| postgresql_version                 | str   | no       | 13     | the major version to use                            |
+| postgresql_version                 | str   | no       | 15     | the major version to use                            |
 | postgresql_use_official_repository | bool  | no       | false  | set true if you want official postgresql repository |
 | postgresql_primary                 | bool  | no       | false  | set true to create user and database on this server |
 | postgresql_config                  | dict  | no       |        | add option config file                              |
diff --git a/defaults/main.yml b/defaults/main.yml
index a8116bc..14ad6e3 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,5 +1,5 @@
 ---
-postgresql_version: 13
+postgresql_version: 15
 postgresql_use_official_repository: false
 postgresql_primary: false
 postgresql_databases: []
@@ -25,7 +25,6 @@ postgresql_config_default:
   log_line_prefix: '%m [%p] %q%u@%d'
   log_timezone: Etc/UTC
   cluster_name: '{{ postgresql_version }}/main'
-  stats_temp_directory: '/var/run/postgresql/{{ postgresql_version }}-main.pg_stat_tmp'
   datestyle: iso, mdy
   timezone: Etc/UTC
   lc_messages: C.UTF-8
diff --git a/meta/main.yml b/meta/main.yml
index d4bb197..bb09706 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -6,13 +6,13 @@ galaxy_info:
   company: Adrien Waksberg
   description: Install and configure postgresql
   license: Apache2
-  min_ansible_version: 2.9
+  min_ansible_version: "2.10"
 
   platforms:
     - name: Debian
       versions:
-        - buster
         - bullseye
+        - bookworm
 
   galaxy_tags:
     - database
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml
index 6ee3033..4e46a56 100644
--- a/molecule/default/converge.yml
+++ b/molecule/default/converge.yml
@@ -7,7 +7,7 @@
     postgresql_use_official_repository: true
     postgresql_primary: true
     postgresql_config:
-      listen_addresses: '*'
+      listen_addresses: "*"
     postgresql_hba:
       - type: local
         databases:
@@ -30,14 +30,14 @@
           - INHERIT
     postgresql_privileges:
       - role: myuser
-        type: database
+        type: schema
         database: myappli
         objets:
-          - myappli
+          - public
         privileges:
           - ALL
 
   pre_tasks:
-    - name: update apt cache
+    - name: Update apt cache
       ansible.builtin.apt:
         update_cache: true
diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
index 4821e7b..58f7769 100644
--- a/molecule/default/molecule.yml
+++ b/molecule/default/molecule.yml
@@ -2,19 +2,21 @@
 driver:
   name: docker
 platforms:
+  - name: debian12
+    image: nishiki/debian12:molecule
+    privileged: true
+    volumes:
+      - /sys/fs/cgroup:/sys/fs/cgroup:rw
+    cgroupns_mode: host
+    command: /bin/systemd
+    capabilities:
+      - SYS_ADMIN
   - name: debian11
     image: nishiki/debian11:molecule
     privileged: true
     volumes:
-      - /sys/fs/cgroup:/sys/fs/cgroup:ro
-    command: /bin/systemd
-    capabilities:
-      - SYS_ADMIN
-  - name: debian10
-    image: nishiki/debian10:molecule
-    privileged: true
-    volumes:
-      - /sys/fs/cgroup:/sys/fs/cgroup:ro
+      - /sys/fs/cgroup:/sys/fs/cgroup:rw
+    cgroupns_mode: host
     command: /bin/systemd
     capabilities:
       - SYS_ADMIN
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
index 01c8cc4..c1569d4 100644
--- a/molecule/default/tests/test_default.py
+++ b/molecule/default/tests/test_default.py
@@ -1,12 +1,12 @@
 import testinfra.utils.ansible_runner
 
 def test_packages(host):
-  for package_name in ['postgresql-13', 'python3-psycopg2']:
+  for package_name in ['postgresql-15', 'python3-psycopg2']:
     package = host.package(package_name)
     assert package.is_installed
 
 def test_config_file(host):
-  path = host.file('/etc/postgresql/13/main/postgresql.conf')
+  path = host.file('/etc/postgresql/15/main/postgresql.conf')
   assert path.exists
   assert path.is_file
   assert path.user == 'root'
@@ -15,7 +15,7 @@ def test_config_file(host):
   assert path.contains("listen_addresses = '*'")
 
 def test_hba_file(host):
-  path = host.file('/etc/postgresql/13/main/pg_hba.conf')
+  path = host.file('/etc/postgresql/15/main/pg_hba.conf')
   assert path.exists
   assert path.is_file
   assert path.user == 'root'
@@ -24,7 +24,7 @@ def test_hba_file(host):
   assert path.contains('local "myappli","myappli2" all md5')
 
 def test_service(host):
-  service = host.service('postgresql@13-main')
+  service = host.service('postgresql@15-main')
   assert service.is_running
   assert service.is_enabled