# Error de migración en 'rename\_discourse\_rewind\_disabled\_to\_enabled'

**URL:** https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049
**Category:** Self-hosting
**Created:** [8 Enero, 2026 16:28 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049 "2026-01-08T16:28:20Z")
**Posts on this page:** 7
**Page:** 2

<div class="post-metadata">

### Author: ![Don](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/don/32/228726_2.png) [@Don](https://meta.discourse.org/u/Don)
#### Post date: [10 Enero, 2026 20:12 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/23 "2026-01-10T20:12:12Z")

</div>

Hola 👋

Yo también me encontré con este problema durante la reconstrucción. La única forma de volver a poner el sitio en línea fue revertir a un _commit_ anterior. Después de revertir a un _commit_ funcional, encontré este tema y ejecuté las consultas. Espero que los resultados sigan siendo útiles para identificar la causa raíz.

**Consulta n.º 1**

```plaintext
 table_schema | column_name | column_default 
--------------+---------------------------+----------------
 backup | discourse_rewind_disabled | false
 public | discourse_rewind_disabled | false
(2 rows)

```

**Consulta n.º 2**

```plaintext
 nspname | oid  
---------+-------
 public | 2200
 backup | 22997
(2 rows)

```

**Consulta n.º 3**

```plaintext
 table_schema | has_default 
--------------+-------------
 backup | t
 public | t
(2 rows)

```

**Consulta n.º 4**

```plaintext
       nspname | oid  
---------------------+-------
 discourse_functions | 19411
 backup | 22997
(2 rows)

```

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [10 Enero, 2026 20:59 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/24 "2026-01-10T20:59:17Z")

</div>

Gracias por ejecutar esas consultas @Don: has confirmado la causa raíz 🙌

Tus resultados muestran exactamente lo que sospechábamos

1. Tienes un esquema `backup` con una copia de `user_options`
2. Esa tabla todavía tiene el valor predeterminado antiguo (`column_default = false`)
3. La fila de `backup` apareció **antes** que `public` en los resultados de la consulta

Cuando la migración eliminó el valor predeterminado de `public.user_options`, no tocó `backup.user_options`. Luego, `mark_readonly` consultó `information_schema.columns` sin filtrar por esquema, obtuvo primero la fila de `backup` (que aún tenía el valor predeterminado) y falló 💥

La solución es simplemente agregar `table_schema = 'public'` a la consulta para que solo compruebe el esquema en el que realmente operan las migraciones.

> <https://github.com/discourse/discourse/commit/2623d7a6078a62c33658ddb3b536d08d7a26cd4a>
>
> \## Problem
> 
> \`Migration::ColumnDropper.mark\_readonly\` could incorrectly detect a …default value from a non-public schema table.
> 
> The query checking for column defaults did not filter by \`table\_schema\`:
> 
> \`\`\`sql
> SELECT column\_default IS NOT NULL
> FROM information\_schema.columns
> WHERE table\_name = :table\_name
> AND column\_name = :column\_name
> \`\`\`
> 
> When multiple schemas contain tables with the same name (e.g., from backup/restore operations), this query returns multiple rows. The code uses \`.first\`, making behavior dependent on PostgreSQL's row ordering.
> 
> \## Root Cause
> 
> Don's diagnostic queries on an affected instance confirmed the issue:
> 
> \`\`\`plain
> table\_schema | column\_name | column\_default
> \--------------+---------------------------+----------------
> backup | discourse\_rewind\_disabled | false ← returned first
> public | discourse\_rewind\_disabled | false
> \`\`\`
> 
> The \`backup\` schema (from a previous \`pg\_dump\`) contained a copy of \`user\_options\` with the old default. PostgreSQL returned this row first, causing \`mark\_readonly\` to fail with "You must drop a column's default value before marking it as readonly".
> 
> \## Fix
> 
> Just a oneline -\> adding \`table\_schema = 'public'\` to the \`WHERE\` clause to ensure only the \`public\` schema is considered.
> 
> \## Why it couldn't be reproduced locally?
> 
> \- Fresh dev databases don't have \`backup\` schemas
> \- CI environments use clean databases
> \- Row ordering depends on database history (OIDs, backup/restore cycles)
> 
> Ref - https://meta.discourse.org/t/393049

---

<div class="post-metadata">

### Author: ![Don](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/don/32/228726_2.png) [@Don](https://meta.discourse.org/u/Don)
#### Post date: [10 Enero, 2026 22:06 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/25 "2026-01-10T22:06:42Z")

</div>

¡Gracias por la solución! Todo funciona perfectamente ahora para mí 🤗

---

<div class="post-metadata">

### Author: ![sniper756](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sniper756/32/545002_2.png) [@sniper756](https://meta.discourse.org/u/sniper756)
#### Post date: [11 Enero, 2026 03:34 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/26 "2026-01-11T03:34:19Z")

</div>

> [@zogstrip](#):
>
> bin/rails db

Lo siento mucho, encontré un problema antes de entrar a la base de datos y no pude proporcionar los resultados de la consulta, afortunadamente Don ya ha respondido.

```plaintext
discourse@jerry-app:/var/www/discourse$ bin/rails db
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:71:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'debug/prelude'. (Bundler::GemRequireError)
Gem Load Error is: cannot load such file -- debug/prelude
Backtrace for gem load error is:
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:63:in `block (2 levels) in require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
/usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
/var/www/discourse/config/application.rb:55:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Bundler Error Backtrace:

        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:62:in `block (2 levels) in require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
        from /var/www/discourse/config/application.rb:55:in `<main>'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from bin/rails:18:in `<main>'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- debug/prelude (LoadError)
        from <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:63:in `block (2 levels) in require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `each'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:58:in `block in require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `each'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler/runtime.rb:52:in `require'
        from /usr/local/lib/ruby/gems/3.3.0/gems/bundler-2.6.4/lib/bundler.rb:215:in `require'
        from /var/www/discourse/config/application.rb:55:in `<main>'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:15:in `require_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/environment_argument.rb:31:in `require_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/actions.rb:19:in `boot_application!'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands/dbconsole/dbconsole_command.rb:83:in `perform'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:178:in `invoke_command'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command/base.rb:73:in `perform'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:65:in `block in invoke'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:143:in `with_argv'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/command.rb:63:in `invoke'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.4/lib/rails/commands.rb:18:in `<main>'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
        from /usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
        from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.19.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from bin/rails:18:in `<main>'
discourse@jerry-app:/var/www/discourse$

```

Pero, ¿cómo se soluciona este problema de acceso a la base de datos? 😅

---

<div class="post-metadata">

### Author: ![sniper756](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sniper756/32/545002_2.png) [@sniper756](https://meta.discourse.org/u/sniper756)
#### Post date: [11 Enero, 2026 04:14 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/27 "2026-01-11T04:14:34Z")

</div>

He investigado siguiendo estos pasos:

```plaintext
# 1. Ver la ubicación de debug en Gemfile
grep -n debug /var/www/discourse/Gemfile

# 2. Ver si application.rb requiere debug directamente
grep -n debug /var/www/discourse/config/application.rb

# 3. Ver si es introducido por un plugin
find /var/www/discourse/plugins -name '*.rb' -exec grep -l debug {} \;

```

Los resultados son los siguientes:

```plaintext
discourse@jerry-app:~$ grep -n debug /var/www/discourse/Gemfile
147: gem "debug", ">= 1.0.0", require: "debug/prelude"
discourse@jerry-app:~$ grep -n debug /var/www/discourse/config/application.rb
discourse@jerry-app:~$ find /var/www/discourse/plugins -name '*.rb' -exec grep -l debug {} \;
/var/www/discourse/plugins/chat/app/controllers/chat/incoming_webhooks_controller.rb
/var/www/discourse/plugins/chat/app/jobs/regular/chat/channel_delete.rb
/var/www/discourse/plugins/chat/spec/requests/chat/incoming_webhooks_controller_spec.rb
/var/www/discourse/plugins/automation/lib/discourse_automation/triggers/recurring.rb
/var/www/discourse/plugins/discourse-oauth2-basic/lib/oauth2_basic_authenticator.rb
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/admin/ai_llms_controller.rb
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/ai_bot/bot_controller.rb
/var/www/discourse/plugins/discourse-ai/evals/lib/recorder.rb
/var/www/discourse/plugins/discourse-ai/evals/lib/prompts/single_test_runner.rb
/var/www/discourse/plugins/discourse-ai/discourse_automation/llm_report.rb
/var/www/discourse/plugins/discourse-ai/lib/automation/llm_tagger.rb
/var/www/discourse/plugins/discourse-ai/lib/automation/report_runner.rb
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/response_http_streamer.rb
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/entry_point.rb
/var/www/discourse/plugins/discourse-ai/lib/guardian_extensions.rb
/var/www/discourse/plugins/discourse-ai/config/routes.rb
/var/www/discourse/plugins/discourse-ai/spec/requests/ai_bot/bot_controller_spec.rb
/var/www/discourse/plugins/discourse-ai/spec/lib/modules/automation/report_runner_spec.rb
/var/www/discourse/plugins/discourse-ai/spec/lib/modules/ai_bot/entry_point_spec.rb
/var/www/discourse/plugins/docker_manager/app/controllers/docker_manager/admin_controller.rb

```

Instalé Discourse usando Docker (sin instalar ningún plugin), luego instalé MySQL dentro del contenedor, importé la base de datos de XenForo y usé el script de migración para migrar de XenForo a Discourse. Durante este proceso, debo haber modificado la configuración de `Gemfile` dentro del contenedor. Después de que la migración se completó con éxito, realicé varias reconstrucciones (`rebuild`) para actualizar.

Mi pregunta es: ¿Por qué sigo teniendo problemas al ejecutar comandos `bin/rails db` a pesar de haber realizado múltiples reconstrucciones y actualizaciones de Discourse?

Gracias.

---

<div class="post-metadata">

### Author: ![sniper756](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sniper756/32/545002_2.png) [@sniper756](https://meta.discourse.org/u/sniper756)
#### Post date: [11 Enero, 2026 18:49 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/28 "2026-01-11T18:49:01Z")

</div>

Último comentario: se reinstaló el sistema operativo, se reimplementó Discourse y se importó la copia de seguridad. El error sigue apareciendo.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [10 Febrero, 2026 21:01 UTC](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049/30 "2026-02-10T21:01:11Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

[Página anterior](https://meta.discourse.org/t/migration-error-in-rename-discourse-rewind-disabled-to-enabled/393049.md?page=1)
