diff --git a/clomonitor-tracker/src/db.rs b/clomonitor-tracker/src/db.rs
index 817ce0a5..89da8a3d 100644
--- a/clomonitor-tracker/src/db.rs
+++ b/clomonitor-tracker/src/db.rs
@@ -54,7 +54,7 @@ impl DB for PgDB {
                     r.updated_at,
                     p.name as project_name,
                     p.accepted_at as project_accepted_at,
-                    p.maturity::text as project_maturity,
+                    p.maturity as project_maturity,
                     f.foundation_id,
                     f.landscape_url as foundation_landscape_url
                 from repository r
diff --git a/database/migrations/functions/projects/register_project.sql b/database/migrations/functions/projects/register_project.sql
index dec694a4..3ec88dd9 100644
--- a/database/migrations/functions/projects/register_project.sql
+++ b/database/migrations/functions/projects/register_project.sql
@@ -30,7 +30,7 @@ begin
         p_project->>'logo_dark_url',
         p_project->>'devstats_url',
         (p_project->>'accepted_at')::date,
-        (p_project->>'maturity')::maturity,
+        (p_project->>'maturity'),
         p_project->>'digest',
         p_foundation_id
     )
diff --git a/database/migrations/functions/projects/search_projects.sql b/database/migrations/functions/projects/search_projects.sql
index 66b25c55..fbcef1bc 100644
--- a/database/migrations/functions/projects/search_projects.sql
+++ b/database/migrations/functions/projects/search_projects.sql
@@ -68,7 +68,7 @@ begin
             p.foundation_id = any(v_foundation) else true end
         and
             case when cardinality(v_maturity) > 0 then
-            p.maturity::text = any(v_maturity) else true end
+            p.maturity = any(v_maturity) else true end
         and
             case when cardinality(v_rating) > 0 then
             p.rating = any(v_rating) else true end
diff --git a/database/migrations/functions/stats/average_section_score.sql b/database/migrations/functions/stats/average_section_score.sql
index ec5d5622..30b9eb46 100644
--- a/database/migrations/functions/stats/average_section_score.sql
+++ b/database/migrations/functions/stats/average_section_score.sql
@@ -14,6 +14,6 @@ returns real as $$
         p.foundation_id = p_foundation else true end
     and
         case when p_maturity is not null then
-            p.maturity::text = p_maturity
+            p.maturity = p_maturity
         else true end;
 $$ language sql;
diff --git a/database/migrations/schema/010_drop_maturity_type.sql b/database/migrations/schema/010_drop_maturity_type.sql
new file mode 100644
index 00000000..df123cc6
--- /dev/null
+++ b/database/migrations/schema/010_drop_maturity_type.sql
@@ -0,0 +1,11 @@
+alter table project
+    alter column maturity type text using maturity::text,
+    add constraint maturity_not_empty_check check (maturity <> '');;
+drop type if exists maturity;
+
+---- create above / drop below ----
+
+create type maturity as enum ('graduated', 'incubating', 'sandbox');
+alter table project
+    drop constraint maturity_not_empty_check,
+    alter column maturity type maturity using maturity::maturity;